Skip to content

Simplify workflow docs sync around direct risk coverage - #18

Merged
wlvh merged 1 commit into
mainfrom
codex/workflow-docs-sync-evidence-first
Aug 2, 2026
Merged

Simplify workflow docs sync around direct risk coverage#18
wlvh merged 1 commit into
mainfrom
codex/workflow-docs-sync-evidence-first

Conversation

@wlvh

@wlvh wlvh commented Jul 30, 2026

Copy link
Copy Markdown
Owner

1. Background and goal

本 PR 重新审查 workflow-docs-sync 每一层是否承担独立风险。目标是保留核心公共行为、少量场景级确定性测试和真实端到端 eval;只有风险已被更直接机制覆盖或被明确接受时,才删除单元测试、实现细节测试、代理指标和重复控制面。

本 PR 不执行目标项目的 live Cutover,不增加 ledger、run state、receipt 或 migration registry,也不改变“只有用户明确要求才 commit、push 或创建 PR”的发布边界。

2. Final identity and actual scope

  • Base SHA:f669ee40b1fbfe91baee097fd26ad975d7783aea
  • Superseded PR head:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
  • Final candidate / PR head:2b4645119877272296f0d9cd15a905695c33c5b6
  • Final tree:9c00ed3e993b440389d6e3c455f4f992240deffc
  • Commit shape:base 上单一提交,标题 Simplify workflow docs sync around direct risk coverage
  • Diff:32 files changed,2382 insertions,2425 deletions

实际范围覆盖根入口、双语九份下游模板、双语 maintainer map、development workflow、DEC-006、canonical Skill、eval contract、安装器分发合同和公开 CLI 场景测试。

3. Implementation and final P1 closure

  • preparecheck 共用单一 source-template validator。upstream_dir 决定 Git object store,upstream_sha 决定固定 object,language 决定读取 zh/en/;九份 source path 必须能从 pinned object 读取且为 UTF-8,八份非 PR source 必须至少含一个 active marker,PR template 豁免 marker。

  • prepare 在任何目标写入前验证 pinned source,并只补齐缺失模板;check 在验证目标终态前重读并验证调用方指定的 pinned source。没有恢复 template equality 或 CRLF equality。

  • StatusEntry 保留 porcelain XY code。editable path 出现 MMAMMDRM 等 index/worktree 分叉时 fail closed,要求调用方先统一唯一 final bytes。

  • final-bytes whitespace 继续在临时非 Git 目录运行,但改为专用 Git 调用,不改变通用 run_git()rev-parseshowstatus 的行为。专用环境设置:

    GIT_ATTR_NOSYSTEM=1
    GIT_CONFIG_NOSYSTEM=1
    GIT_CONFIG_GLOBAL=/dev/null
    

    命令同时固定:

    core.attributesFile=/dev/null
    core.whitespace=blank-at-eol,blank-at-eof,space-before-tab
    

    因此 checker 不继承 target repository、user-global 或 system attributes。

  • 公开 CLI 回归使用临时 HOME,通过 git config --global core.attributesFile 指向含 *.md -whitespace 的临时 attributes 文件,再把 trailing whitespace 写入目标 architecture.md。旧生产实现中 check 错误返回 0;修复后同一场景以 trailing whitespace 失败。测试没有修改真实用户 global config,也没有 import production helper。

  • canonical SKILL.md 与 DEC-006 同步声明 target/user-global/system attributes 隔离。

  • 存在的 .gitignore 继续要求普通文件、UTF-8,并进入同一 final-bytes whitespace gate。

红绿记录:

  • 修复前定向场景:1 failed in 32.97s;新断言捕获 check_result.returncode == 0
  • 修复后定向场景:1 passed in 36.19s

4. Template and decision boundary

  • 下游模板撤回 Workflow Docs Sync 特有的 clone/pin、reviewer isolation 和 publishing implementation;保留并通用化主执行者负责、委派结果需审阅、共识不等于证据、调查与审查默认只读,以及不固定 Agent 数量或调度顺序等协作原则。
  • 并行写入时要求不重叠的路径所有权;具体隔离方式遵循目标项目政策。需要修改时由只读调查/审查任务显式移交给具有写入所有权的执行者。
  • PR body 草稿位置、发布工具和提交方式遵循目标项目政策;临时草稿不得误提交,body 必须与真实 diff 和测试证据一致。
  • DEC-006 partial supersede DEC-005 的固定四领域 Agent、固定内部对抗性 audit Agent 和无 subagent 时固定四章节顺序。
  • DEC-005 的 one-call、single writer、不写 repository run state/receipt、prepare/check 机械责任边界,以及发布需显式授权且不由 sync_docs.py 执行继续有效。
  • 删除旧版 22 项 TEMPLATE_TOKENS 和独立 broad“待补充”扫描;两个 active project-fill marker 是唯一机器未完成状态。历史 upstream 由 source active-marker invariant fail closed。
  • Markdown 语义完整性由覆盖维度 review、Case G 和真实 Case A 承担;机械 check 不声称判断文案质量或章节语义。

5. Public CLI scenario coverage

场景测试只通过公开 CLI 与真实临时 Git 仓库验证,不 import sync_docs.py 内部 helper:

  • v1 source 有 marker、v2 删除 marker:check(v1) PASS,check(v2) FAIL,证明结论依赖 object bytes 而非回显 SHA。
  • prepare(zh) 后以 en 或无九模板的 unrelated object store 执行 check,均按真实 source 失败。
  • marker-less 或 invalid UTF-8 upstream 在任何 target 写入前失败。
  • editable index bad/worktree clean 的分叉失败。
  • target .gitattributes 与 user-global core.attributesFile*.md -whitespace 均不能绕过 bad final Markdown。
  • invalid UTF-8 .gitignore 失败。
  • user/repo、Codex/Claude 安装与仓库分发合同端到端通过。

6. Final-SHA mechanical evidence

以下命令均在 2b4645119877272296f0d9cd15a905695c33c5b6 上重跑:

PYTHONDONTWRITEBYTECODE=1 \
PYTHONPYCACHEPREFIX=/tmp/coding-workflow-pr18-2b46451-pytest \
/Users/lyuhongwang/opt/anaconda3/bin/python3 -m pytest -q -p no:cacheprovider \
  tests/test_workflow_docs_sync.py

Result:5 passed in 55.27s

PYTHONDONTWRITEBYTECODE=1 \
PYTHONPYCACHEPREFIX=/tmp/coding-workflow-pr18-2b46451-compile \
/Users/lyuhongwang/opt/anaconda3/bin/python3 -m py_compile \
  zh/skills/workflow-docs-sync/scripts/sync_docs.py \
  zh/scripts/install_skills.py \
  tests/test_workflow_docs_sync.py

Result:PASS。

PYTHONDONTWRITEBYTECODE=1 \
PYTHONPYCACHEPREFIX=/tmp/coding-workflow-pr18-2b46451-quick \
/Users/lyuhongwang/opt/anaconda3/bin/python3 \
  /Users/lyuhongwang/.codex/skills/.system/skill-creator/scripts/quick_validate.py \
  zh/skills/workflow-docs-sync

Result:Skill is valid!

git diff --check origin/main...HEAD
git diff --cached --check
PYTHONDONTWRITEBYTECODE=1 python3 \
  zh/skills/workflow-docs-sync/scripts/sync_docs.py --help

Result:diff checks PASS;CLI 只暴露 {prepare,check}

7. Final-SHA end-to-end eval

三次 eval 均固定 candidate upstream SHA 2b4645119877272296f0d9cd15a905695c33c5b6。Case A 使用隔离 SEC_metrics worktree,target SHA 00c49b119431ad7201c51e573fbf2f353da3425e,language zh;原始 SEC checkout 未修改。

Case G — PASS

  • Review mode:fresh-context、blind-first、independent、candidate-read-only。
  • Tree 9c00ed3e...;worktree/index diff 均为空。
  • 根入口成功导航到双语模板、canonical Skill、安装器、测试、development workflow/DEC 和三类 .github 职责。
  • 默认 Python 3.14 缺 pytest/PyYAML,原始失败完整保留为环境 WARN;使用机器既有、未修改的 Anaconda Python 3.9 后,5 passed in 47.92sSkill is valid!。没有安装依赖。
  • Case G raw record

SEC_metrics Case A round 1 — PASS

  • prepare 固定 target/upstream/language,installed=[],九文件均 existing。
  • 全量事实重建最终只改 AGENTS.mdTESTING.mdarchitecture.md:历史方案文档降权、Stage 10–12 参数/副作用/阈值/failure boundary 补齐,以及 active 00–11 三份配置与 Stage 12 source policy 边界澄清。最终 diff 为 8 insertions/5 deletions,SHA-256 0f0ad9124fe32174874b2eccac7c118aa84ca3bf98a4076ab06f3445e3bd0bb3
  • independent reviewer 初审发现 relative/absolute tolerance 误述、Stage 11 输入误述和重复维护面;修复后 APPROVE。父级在 blind review 后补充的 architecture finding 经 production/config 验证后窄修。
  • 完整回归:默认/Python 3.9 全仓各 365/365,默认/Python 3.9 vNext 各 174/174;provenance 22/22;Stage 10–12 定向 21/21;JSON 与 git diff --check PASS。
  • capability alignment 如实因三份未提交权威文档与 HEAD bytes 不同返回 1;没有把它写成 PASS。公开 final check PASS,dirty allowlist 恰为三文件。
  • Case A round 1 raw record

SEC_metrics Case A round 2 — PASS with one fact-triggered correction

  • exact prompt 在任何仓库读取前冻结为 3799 bytes,SHA-256 3d5f399e2de8a694e10c9d4094555ca1ed93a8e2de031d2f6833c96a9c81151f;禁止读取 round 1、Case G、PR body/comments 和历史 eval。
  • 重新调查、重新选择测试、重新 review;不是第二次 prepare/check
  • independent reviewer 在初始 bytes 上发现 1 个 BLOCKER:TESTING.md 把任意 Stage 10 远端失败写成必然非零,但 SecHttpClient.fetch() 重试耗尽返回 FetchResult,G2 只把 status 写入 actual,Stage 10 按 assertion status 决定退出码。round 2 只收窄该句文案,未改 production;修后 reviewer APPROVE
  • 因该新事实,round 2 不是 no-op。八份文件 bytes 不变,仅 TESTING.md 变化;最终三文件 diff 仍为 8 insertions/5 deletions,diff SHA-256 ed492af7064f0d451ff25c4a0e57b37f6e0a2725c86f2dbbec742e9a34aed6b0
  • 完整回归:默认/Python 3.9 全仓各 365/365;默认 vNext 174/174;Python 3.9 vNext 首次因 terminal receipt 丢失记为 INDETERMINATE,原命令独立重跑 174/174 PASS。修后 provenance 22/22、Stage 10–12 定向 18/18、JSON/diff PASS。
  • reviewer 为遵守 target 仓库规则,在 phase 1 提前读取了 AGENTS.md;因此记录明确不声称“九文件严格全盲”。其余八文件和完整 diff 在独立事实冻结后读取。
  • capability alignment 仍只因三份未提交文档 fail closed;公开 final check PASS,dirty allowlist 恰为三文件。
  • Case A round 2 raw record

5e5e47e... 的三份 eval 已按 final-SHA contract superseded,不作为本 head 的合并证据。

8. Review/fix record

  • B-1:pinned source identity 与 active-marker source invariant 已进入 prepare/check 共用生产 gate;object/language/unrelated store/fail-before-write 场景通过。
  • B-2:editable index/worktree split、target attributes 绕过、.gitignore UTF-8 进入稳定 final-bytes gate。
  • B-3:新 P1 core.attributesFile / system attributes 绕过已由 whitespace 专用 Git 环境和公开 CLI 回归关闭;通用 Git 调用未改变。
  • B-4:Case G 与两轮完整 Case A 仅在 final SHA 上运行;raw 记录包含固定身份、exact prompt/review mode、commands、diff/digest、findings 和 final JSON。
  • B-5:模板采用窄修;撤回 WDS-specific isolation/publishing implementation,保留通用协作与证据原则。
  • B-6:DEC-005/006 的固定拓扑冲突以 partial supersession 关闭。

当前没有未解决 P0/BLOCKER 或 P1/actionable WARN。范围外 NOTE:默认 Python 缺 pytest/PyYAML;现有 Anaconda 环境已形成有效 gate evidence。

9. Known limits and final gate

  • Case A 只证明文档事实重建与 sync contract,不表示 SEC full validation、production deployment、live AI、Cutover、rollback 或外部审计通过。
  • Case A 的三文件 diff 只存在于临时隔离 eval worktree,不属于本 PR,也未提交或推送到 SEC_metrics。
  • Case A capability alignment/snapshot checker 的 dirty-source failure 是未提交候选的真实状态,不能写成 clean-clone/full PASS。
  • GitHub checks:test/pytest (pull_request)test/pytest (push) 均 SUCCESS。
  • PR 保持 Draft/Open;本次修复不包含 ready/merge 授权。

最终自检:local SHA、remote branch 与 PR head 一致;base 上单一提交;机械 gate、Case G、Case A round 1 和完整 round 2 均固定同一 final SHA;PR body 与 raw comments 对应真实执行;canonical worktree/index clean。

@wlvh
wlvh force-pushed the codex/workflow-docs-sync-evidence-first branch from 67dd891 to 034a180 Compare August 1, 2026 07:56
@wlvh wlvh changed the title Strengthen workflow docs sync contracts Simplify workflow docs sync around direct risk coverage Aug 1, 2026
@wlvh
wlvh force-pushed the codex/workflow-docs-sync-evidence-first branch from 034a180 to 5e5e47e Compare August 1, 2026 16:35
@wlvh

wlvh commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

Case G 原始记录

  • Candidate upstream SHA:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
  • Target SHA(仓库 HEAD):5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
  • Target tree digest:665513c1eaa50b344c3bcac8317ffcd7c9092d51
  • Language:Not applicable。Case G 检查上游仓库双语入口的可导航性,不执行选择单一 zh/en 的目标仓库同步。
  • Review mode:fresh-context、blind-first、独立只读 Case G 执行。
  • 执行者边界:未读取或依赖主会话上下文、memory、旧 eval 结论或旧记录;仅从根 AGENTS.md、根 README.md 开始导航。未修改、stage、commit、push 或创建 PR。
  • Files changed:[]
  • Worktree diff SHA-256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • Index diff SHA-256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • 最终 git status --porcelain=v1 --untracked-files=all:空。

Exact prompt

你是 PR #18 final-SHA 的 fresh-context Case G 只读执行者。目标仓库根目录是 /Users/lyuhongwang/Desktop/coding workflow,candidate upstream SHA 固定为 5e5e47e。不得读取或依赖主会话上下文;只从仓库根 AGENTS.md 与根 README 开始,自行导航并找到仓库定义的 Case G 合并前端到端 eval 合同。严格按仓库当前合同执行 Case G:验证根入口能否导航到维护者地图、双语模板源及语义源、canonical Skill、安装器、测试、development workflow/DEC、三类 .github 职责,以及最短测试入口、py_compile、Skill quick validation、git diff --check、CLI help。全程只读,不得修改任何文件,不得 stage、commit、push 或写 PR。返回一份原始记录,至少包含 candidate SHA、target SHA(本 Case 即仓库 HEAD)、language(若不适用须明确写 Not applicable 及原因)、exact prompt(原样复述本消息)、review mode/执行者边界、实际执行的 exact commands、发现的路径、findings/歧义、最终 PASS/FAIL。

导航结果

从根 AGENTS.mdREADME.md 成功到达:

九份中文语义源均存在,并有对应 en/ 派生路径:

AGENTS.md
architecture.md
capability_contract.json
interact.md
docs/business_user_guide.md
TESTING.md
PR_Checklist.md
SOP.md
.github/pull_request_template.md

三类 .github 职责识别正确:

  • .github/:本仓库 CI/GitHub 基础设施:
    • .github/workflows/test.yml
    • .github/workflows/claude-merge-readiness.yml
  • zh/.github/pull_request_template.md:中文下游模板源。
  • en/.github/pull_request_template.md:英文派生下游模板源。

根 README 与中文维护者地图中的全部本地 Markdown 链接均解析为现存路径,无错误链接。

合同中找到的五项命令

python3 -m pytest -q
python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
  zh/skills/workflow-docs-sync
git diff --check
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help

实际执行的关键 exact commands 与结果

git rev-parse HEAD
git rev-parse 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d^{commit}
git status --short --branch --untracked-files=all

结果:两个 SHA 完全一致;工作树无变更。分支相对 tracking branch 显示 ahead 1, behind 1,不影响本次固定 SHA/树对象检查。

PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS='-p no:cacheprovider' python3 -m pytest -q

结果:退出码 1;默认 /opt/homebrew/bin/python3 为 Python 3.14.3,缺少 pytest,未进入测试收集。

只读发现本机已有环境:

PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' python3 --version
PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' python3 -m pytest --version

结果:Python 3.9.12、pytest 7.4.4。

PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' \
PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS='-p no:cacheprovider' \
python3 -m pytest -q

结果:退出码 05 passed in 43.86s

py_compile 通过 TemporaryDirectory.pyc 限定在仓库外临时目录;内部执行 argv 等价于:

python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py

结果:退出码 0;临时缓存自动清理,仓库无变化。

PYTHONDONTWRITEBYTECODE=1 \
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
  zh/skills/workflow-docs-sync

结果:退出码 1;默认 Python 缺少 yaml,未进入 Skill 校验。

PATH='/Users/lyuhongwang/opt/anaconda3/bin:/opt/homebrew/bin:/usr/bin:/bin' \
PYTHONDONTWRITEBYTECODE=1 \
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
  zh/skills/workflow-docs-sync

结果:退出码 0Skill is valid!

git diff --check

结果:退出码 0,无输出。

PYTHONDONTWRITEBYTECODE=1 \
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help

结果:退出码 0;正确显示 {prepare,check} CLI。

最终核验:

git diff --binary | shasum -a 256
git diff --cached --binary | shasum -a 256
git status --porcelain=v1 --untracked-files=all

结果:两个 diff 均为空内容 digest,status 为空。

Findings / 歧义

  • 未发现 Case G 失败条件:无路径缺失、无链接错误、未混淆根与双语 .github,也不需要会话外知识寻找验证入口。
  • 环境 WARN:维护者地图未说明本地 pytest/PyYAML 依赖准备;当前默认 Python 3.14 缺少二者。未安装任何依赖,使用机器已有 Anaconda 环境后测试和 Skill validation 均通过。
  • pytest 在系统临时目录运行 fixtures;py_compile bytecode 使用仓库外临时目录并清理。目标仓库始终无 Git 可见或不可见新增缓存。
  • Tracking branch 的 ahead 1, behind 1 是原始状态观察,不影响固定 candidate/target SHA 的 Case G 判定。

最终结论:PASS

Case G 的仓库入口可导航性、路径职责和五项验证入口均满足当前合同;候选 SHA 上实际验证结果通过,默认解释器依赖缺失已作为环境歧义完整保留。

@wlvh

wlvh commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

PR #18 final-SHA — Case A round 1 原始记录

结论

PASS:完成了一次完整 workflow-docs-sync。仅修改 architecture.md 一行,独立 review 通过,最终 pinned check 通过。

此 PASS 仅表示本轮文档事实重建与同步合同通过,不表示 SEC full validation、production deployment、live AI、Cutover 或外部审计通过。

固定身份

  • Candidate upstream SHA:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
  • Target SHA:00c49b119431ad7201c51e573fbf2f353da3425e
  • Language:zh
  • Canonical upstream:/Users/lyuhongwang/Desktop/coding workflow
  • Target:/tmp/sec-metrics-pr18-case-a.gAlbGv/target
  • Review mode:fresh-context blind-first independent review
  • 执行边界:主执行者重建事实、修改和测试;独立 reviewer 在未接收主执行者 findings 的情况下只读复核。
  • 独立 review:BLOCKER 0,actionable WARN 0
  • 未 commit、stage、push、创建 PR 或 draft PR。
  • 未在 target 写入 run state、ledger、receipt、scratch 或 PR body。
  • Memory 只用于提醒隔离执行和不得复用旧 Case A 结果;未将旧结果用作本轮证据。

Exact prompt

你是 PR #18 final-SHA 的 SEC_metrics Case A round 1 执行者。必须完整执行一次 workflow-docs-sync,而不是只跑 prepare/check。

固定身份:
- canonical upstream repo:/Users/lyuhongwang/Desktop/coding workflow
- candidate upstream SHA:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
- isolated target repo:/tmp/sec-metrics-pr18-case-a.gAlbGv/target
- target SHA:00c49b119431ad7201c51e573fbf2f353da3425e
- language:zh
- 不创建 draft PR。

先完整读取 canonical `/Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/SKILL.md` 和它直接要求的当前合同,再从 target 的 AGENTS.md、SOP.md 路由,完整读取本次 review 所需的 architecture.md、capability_contract.json、interact.md、TESTING.md、PR_Checklist.md、docs/business_user_guide.md、vNext Issue/FSD/decision 状态及必要代码/测试。调用 final-SHA 的公开 `sync_docs.py prepare`,固定其单行 JSON 身份。

这是一次完整事实重建与最小必要文档同步:
1. 从真实代码、配置、测试和 committed artifacts 重建 pipeline,专门核对 stage 10、11、12 的输入、写入副作用、容错参数和 hard failure;
2. 主动寻找部分过时旧文档;
3. 主动寻找多份文档彼此一致、但代码和测试不存在的共同虚构能力;
4. 主动检查 light、golden、repair validation 是否被写成 full validation;
5. 没有当前部署配置和运行证据时,不得声称 production scheduling 完成;
6. 只改错误、缺失或失真内容;若当前九文档已准确,保持零 diff;不得制造格式抖动。

按 target TESTING.md 重新选择并实际运行足以支持本轮判断的真实测试。不得用旧 Case A 结果、旧测试数字或旧 receipt 代替本轮执行;未运行项写明原因。完成 fresh-context independent review;若平台无法提供独立 reviewer,则做完整 self-review并原样标记 review mode。最后调用同一 candidate SHA/target SHA/language 的公开 `sync_docs.py check`,保留原始单行 JSON。

全程不得 commit、stage、push、创建 PR,不得在 target 写 run state、ledger、receipt、scratch 或 PR body;测试自身按项目合同生成的既有类型 artifact 必须准确记录。返回完整原始记录,至少包含:candidate upstream SHA、target SHA、language、exact prompt(原样复述本消息)、review mode/执行者边界、prepare JSON、所有 exact commands 及结果/耗时/环境、files changed、九份文件逐项 SHA-256 与整体 digest、完整 Git diff(若为空明确写 empty)、findings 及处置、逐项现实抽样结论、未运行项/风险、final-check 原始 JSON、最终 PASS/FAIL。

Prepare

Exact command:

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh

结果:exit 0,wall 0.3s

原始单行 JSON:

{"status":"prepared","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}

事实重建结论

Stage 10

  • FULL_VALIDATION 要求 evidence、request log 和 concept inventory 的完整形状。
  • Full 路径会构造 SecHttpClient,G2 structural Golden 会访问 SEC;可能追加 request evidence/log。
  • 会覆盖 outputs/golden_results.csvoutputs/golden_candidates.csv
  • assertion 缺失、重复、多余或任一 FAIL 均非零退出。
  • 显式 light marker 才允许 LIGHT_REVIEW_MODE;light 不联网,只重算随包 snapshot integrity,成功仅输出受限 PASS: LIGHT_REVIEW_MODE
  • 材料不完整且无 light marker 时为 WORKSPACE_INCOMPLETE,非零退出。
  • Golden 容差按 fixture 中 assertion-specific absolute tolerance 执行,不是笼统相对误差。

Stage 11

  • 开始前使旧 provenance 失效。
  • 输入为既有 inventory、metrics/evidence、governance、Golden、SEC materials 和配置。
  • P0 repair 会重写 metrics、evidence、governance,并刷新 repair-sensitive Golden。
  • C04 本地 AuditorName 缺失时,才可能条件式访问 SEC accession index/instance,并追加材料、request log/manifest、concept inventory。
  • 还会写 coverage、crosscheck、exceptions、validation artifacts、报告、README 和 manifest。
  • stage 11 exit 0 只表示报告构建完成,不能替代独立 stage 12。
  • 中途失败没有通用事务回滚;部分派生产物可能已经写入。

Stage 12

  • wrapper 在导入 pipeline 前捕获 clean source snapshot,并先使旧 provenance 失效。
  • 不执行 live 数据采集,但会覆盖 validation/audit outputs、manifest、报告及 provenance sidecar。
  • Full 模式中 P0 FAIL、WORKSPACE_INCOMPLETE、关键 NOT_EVALUATED_MISSING_EVIDENCESKIPPED_LIGHT_PACKAGE 会阻止通过。
  • Light 只能成为 PASSED_WITH_CAVEATS,不能升级为 full。
  • 报告/manifest 写入失败、source closure dirty、artifact digest/key/size 不一致或 provenance publication/self-check 失败均 hard fail。
  • postflight 失败会尝试把 manifest 降为 FAILED、报告降为 NO-GO,然后非零退出。

其他现实抽样

  • Light、Golden、repair validation、full validation 在九份文档中已明确分层;没有发现把邻近绿色测试宣传成 full validation 的内容。
  • vNext 文档共同描述的 recorded primitives 有真实代码和测试支撑;同时正确披露 D-01、有效 SEC 身份、第二真实布局、holdout、live 三轮、staging parity、旧 producer 退出、Cutover、rollback/full validation 尚未完成。
  • artifacts/vnext/active_publication.json 不存在;现行 stage 11 未消费 active vNext publication。
  • .github/ 只有 pull_request_template.md,没有 CI workflow。
  • scripts/tools/config/.github/ 搜索 cron|scheduler|schedule:|launchd|systemd|deployment|deploy 无命中。
  • config/sec_config.jsoncontact_email=test@example.com,不能作为有效生产 SEC 身份。
  • 因此没有 production scheduling、deployment 或 active Cutover 证据;文档也没有声称这些能力已完成。
  • 已提交 manifest/provenance 属于旧 run:
    • manifest source:673cccc04ada3bfb215fcf4ffba68bf5469df7e4+dirty
    • provenance source:673cccc04ada3bfb215fcf4ffba68bf5469df7e4
    • 当前 target:00c49b119431ad7201c51e573fbf2f353da3425e
  • 旧 committed artifact 只用于辨认记录状态,未替代本轮测试或验收。

Findings 与处置

  • BF-W01architecture.md 第 32 行仍写“输入包括三份配置”,已经不能覆盖当前仓库配置与 validation_source_policy.json 所定义的 00–12 source closure。
    • 处置:改为“输入包括仓库配置与 source policy”。
    • 独立 reviewer 确认修改必要且闭合。
  • BF-N01:固定九份范围外存在历史 Raw handoff ledger schema 过时。
    • 处置:它不是 acceptance source,也不属于本轮九份固定范围;未越界修改。
  • DR-N01:独立 reviewer 确认 diff 正确、最小,其他八份无需修改。
  • 未发现多份九文档共同虚构当前代码/测试不存在的 active 能力。
  • 未发现其他需同步的九文档事实错误。

Files changed

architecture.md

其他八份文件无变化。

完整 Git diff:

diff --git a/architecture.md b/architecture.md
index 0fab599..c64a0d5 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
  • Worktree binary diff SHA-256:c5049e9ffff13c7989f68f7aedfdbd03bebf90aa62a8340e1bfd6143e65c9685
  • Cached diff SHA-256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • Final status: M architecture.md
  • Staged paths:空
  • Untracked paths:空
  • __pycache__:空

九份文件 SHA-256

整体算法:

sha256(canonical-json(path,sha256,size_bytes) in required_files order)
Path Size SHA-256
architecture.md 56842 90c74306106e76b2dce203c885594f6770493e9671b09625c52ac0792350e4d3
capability_contract.json 49298 977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8
interact.md 26170 4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326
docs/business_user_guide.md 19099 cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81
TESTING.md 51600 f9de0d7bbda5d645ebf2ceffddbeb2f58ebf7070934c7a2fd01c378797c8d994
PR_Checklist.md 9129 b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8
SOP.md 7410 0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e
AGENTS.md 15787 8d0f05d38fc4967823e5b70c3ae78c214ceebd041083a68656b49d2d06de512c
.github/pull_request_template.md 6268 37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4

Overall digest:

0de41ff78903256e5e598001186895afb45b5f61ff255f4167419b31c14bd6de

测试环境

UTC=2026-08-01T15:23:29Z
macOS 26.4 / Darwin 25.4.0 / arm64
/opt/homebrew/bin/python3 = Python 3.14.3
/Users/lyuhongwang/opt/anaconda3/bin/python3.9 = Python 3.9.12
PYTHONDONTWRITEBYTECODE=1

测试只使用项目代码和系统临时目录;最终 Git 状态证明没有测试 artifact 落入 target。

Exact validation commands 与结果

JSON

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m json.tool capability_contract.json >/dev/null
  • exit 0
  • real 0.02 / user 0.02 / sys 0.00

Canonical capability alignment

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 tools/check_capability_contract_alignment.py
  • exit 1
  • 唯一错误:
Capability contract alignment failed:
- clean-clone evidence differs from HEAD: architecture.md
  • real 1.46 / user 1.13 / sys 0.26
  • 这是 checker 明确要求 evidence 与 committed HEAD byte-identical,而本任务必须保留未提交文档 diff 的预期结果;没有伪装成 PASS。

当前工作树的纯结构检查:

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 - <<'PY'
import json
import sys
from pathlib import Path

repo_root = Path.cwd().resolve()
sys.path.insert(0, str(repo_root / 'tools'))
from check_capability_contract_alignment import (
    alignment_errors,
    git_committed_entries,
    read_contract,
)

contract_path = repo_root / 'capability_contract.json'
payload = read_contract(path=contract_path)
tracked_paths = set(git_committed_entries(repo_root=repo_root))
errors = alignment_errors(
    repo_root=repo_root,
    payload=payload,
    tracked_paths=tracked_paths,
    base_payload=None,
)
print(json.dumps({'structural_errors': errors}, ensure_ascii=False, separators=(',', ':')))
raise SystemExit(1 if errors else 0)
PY

原始结果:

{"structural_errors":[]}
  • exit 0
  • real 0.94 / user 0.91 / sys 0.02

Provenance 专项

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest tests.test_validation_provenance tests.test_validation_provenance_light_package
  • exit 0
  • Ran 22 tests in 3.322s
  • OK
  • real 3.41 / user 1.47 / sys 1.59

Stage 10/11/12 定向回归

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ReportVerdictTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.AuditorRepairBoundaryTest tests.test_sec_pipeline_validation.FullInstanceFallbackTest
  • exit 0
  • Ran 39 tests in 0.168s
  • OK
  • real 0.35 / user 0.27 / sys 0.05
  • 覆盖 light marker/workspace incomplete、Golden exact set、full/light verdict、stage 11/12 manifest/report fail-closed、C04 本地/条件 fetch 边界和 instance fallback。

默认完整 quick 回归

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
  • exit 0
  • Ran 365 tests in 157.184s
  • OK
  • real 157.44 / user 114.60 / sys 40.61
  • 输出中的 Git unavailable、prior 10-K unavailable 等文字均为测试负例诊断;无 failure、error 或 skip 汇总。

vNext Python 3.9

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • exit 0
  • Ran 174 tests in 208.309s
  • OK
  • real 208.57 / user 161.92 / sys 43.79

vNext 默认解释器

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • exit 0
  • Ran 174 tests in 148.843s
  • OK
  • real 149.06 / user 110.78 / sys 37.78

这两条仅证明 recorded/shadow 测试在两个解释器通过,不证明 live AI、Cutover 或 full validation。

Git 机械检查

git diff --check
  • exit 0
  • 无输出。

主要调查命令

以下读取/调查命令均为只读,正常批次耗时 0.0–0.3s

git rev-parse HEAD
git cat-file -t 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
git cat-file -t 00c49b119431ad7201c51e573fbf2f353da3425e
git status --short --branch --untracked-files=all
git diff --cached --name-status
git ls-files -z
git log --date=iso-strict --format='%H%x09%ad%x09%s' -n 8 -- AGENTS.md SOP.md architecture.md capability_contract.json interact.md TESTING.md PR_Checklist.md docs/business_user_guide.md .github/pull_request_template.md scripts/sec_pipeline.py scripts/validation_provenance.py requirements/ai_first_v3_3_1
sed -n '1,220p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/SKILL.md
sed -n '1,620p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py
sed -n '1,220p' /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/evals/README.md

完整或分段读取了:

AGENTS.md
SOP.md
architecture.md
capability_contract.json
interact.md
TESTING.md
PR_Checklist.md
docs/business_user_guide.md
.github/pull_request_template.md
README_RUN.md
requirements/ai_first_v3_3_1/FSD.md
requirements/ai_first_v3_3_1/ISSUE_CONTRACT.md
requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
requirements/ai_first_v3_3_1/decision_register.json
requirements/ai_first_v3_3_1/baseline_manifest.json
requirements/ai_first_v3_3_1/legacy_path_inventory.json
scripts/10_run_golden_assertions.py
scripts/11_build_report.py
scripts/12_validate_repair.py
scripts/sec_pipeline.py
scripts/validation_provenance.py
tools/check_validation_snapshot.py
tests/test_sec_pipeline_validation.py
tests/test_validation_provenance.py
tests/test_validation_provenance_light_package.py
tests/vnext/
config/sec_config.json
config/validation_source_policy.json
config/vnext_release_plan.json
config/metric_applicability.yaml
config/company_registry.csv
outputs/validation_run_manifest.json
outputs/validation_snapshot_provenance.json
REPORT_十公司财务指标.md

此外执行了 rg 搜索 stage 10/11/12、light/full、Golden、repair、production scheduling、vNext 边界和对应测试类。

调查过程中的非证据性调用错误已保留:

  • 一次 rg 使用了错误的 requirements/vnext/3.3.1/ 路径;find requirements 后改用实际 requirements/ai_first_v3_3_1/
  • 一次读取 committed artifact 的 heredoc 漏结束标记,得到 Python SyntaxError;随后用正确命令重读。
  • 一次早期 NUL path 计数使用错误分隔符得到 0;最终权威命令确认 tracked_files=1187,scope digest 为 473acdbfae020dac8a73451583eb022659b9dca833c6b6c4e54ce01e24263af4
  • 这些错误均未修改文件,也未作为结论证据。

未运行项与原因

  • scripts/0009、完整 stage sequence:未运行;会联网并大量覆盖 evidence/outputs,纯文档同步不需要重新采集 SEC 数据。
  • Stage 10 full:未运行;需要有效 SEC 身份并会联网、写 Golden 和 request evidence。当前身份仍为 test@example.com
  • Stage 11:未运行;会应用 repairs 并覆盖 metrics/evidence/governance/Golden/report/README/manifest,C04 还可能联网。
  • Stage 12:未运行;会覆盖 validation artifacts、manifest、报告和 provenance;而本轮合法的 architecture.md source diff 会被 clean-source gate 有意拒绝。
  • tools/check_validation_snapshot.py:未运行;当前 acceptance source dirty,按合同只会因本轮文档 diff 失败,不能证明文档语义。
  • tools/run_acceptance.py --scope recorded:未运行;会覆盖 receipt/audit artifacts,且本任务禁止在 target 生成 receipt。
  • Live AI、第二真实布局、独立 holdout、live 三轮、staging parity、Cutover、rollback/full:未运行,仍属 NOT_RUN。
  • 风险:canonical capability alignment 的 clean-clone 条件只有在文档 diff 被授权提交后才能通过;本任务明确禁止 commit。

Final check

第一次调用误用了不存在的参数名:

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --expected-upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d

原始结果:

{"status":"failed","error":"参数无效","detail":"the following arguments are required: --upstream-sha"}

该调用未写入文件。公开 help 确认参数后,按同一 pinned identity 重跑:

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --language zh

最终原始单行 JSON:

{"status":"passed","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","files_checked":9,"dirty_paths":["architecture.md"]}
  • exit 0
  • wall 0.4s
  • Final target HEAD 未漂移。
  • Final upstream HEAD 未漂移。
  • Overall digest 在 final check 后保持 0de41ff78903256e5e598001186895afb45b5f61ff255f4167419b31c14bd6de

最终判定

PASS — workflow-docs-sync Case A round 1。

独立 review、真实回归、最终九文件哈希、完整 diff 和 pinned final check 已闭合;唯一未 staged diff 是经 reviewer 确认必要的 architecture.md 一行修正。

MEMORY.md:1911-1912|note=[kept prior Case A mechanical evidence out of semantic acceptance and used an isolated target] MEMORY.md:1920-1922|note=[kept fresh Case A execution separate from old trial results] 019f7ecf-8d3f-7890-b3ff-25206e809da4

@wlvh

wlvh commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

PR #18 final-SHA — SEC_metrics Case A round 2 fresh-context 原始记录

  • 记录完成时间(UTC):2026-08-01T16:29:06Z
  • canonical upstream repo:/Users/lyuhongwang/Desktop/coding workflow
  • candidate upstream SHA:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
  • isolated target repo(调用路径):/tmp/sec-metrics-pr18-case-a.gAlbGv/target
  • isolated target repo(realpath):/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target
  • target SHA:00c49b119431ad7201c51e573fbf2f353da3425e
  • language:zh
  • draft PR:未创建
  • commit / stage / push / PR:均未执行

1. Exact prompt(初始消息原样全文)

你是 PR #18 final-SHA 的 SEC_metrics Case A round 2 fresh-context 执行者。必须立即重新完整执行一次 workflow-docs-sync;本轮不能读取、引用或复用 Case A round 1 的提示词、记录、findings、测试数字、review 结论或 digest,也不能把第二次 prepare/check no-op 当作完整运行。

固定身份:
- canonical upstream repo:/Users/lyuhongwang/Desktop/coding workflow
- candidate upstream SHA:5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d
- isolated target repo:/tmp/sec-metrics-pr18-case-a.gAlbGv/target
- target SHA:00c49b119431ad7201c51e573fbf2f353da3425e
- language:zh
- 不创建 draft PR。

先冻结 target 当前九份核心文件的逐项 SHA-256、整体 digest、完整 Git diff/status,随后完整读取 canonical `/Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/SKILL.md` 和它直接要求的当前合同,再从 target 的 AGENTS.md、SOP.md 路由,完整读取本次 review 所需的 architecture.md、capability_contract.json、interact.md、TESTING.md、PR_Checklist.md、docs/business_user_guide.md、vNext Issue/FSD/decision 状态及必要代码/测试。调用 final-SHA 的公开 `sync_docs.py prepare`,固定其单行 JSON 身份。

这是第二次独立的完整事实重建,不是对第一轮的确认:
1. 从真实代码、配置、测试和 committed artifacts 重新调查 pipeline,专门核对 stage 10、11、12 的输入、写入副作用、容错参数和 hard failure;
2. 主动寻找部分过时旧文档;
3. 主动寻找多份文档彼此一致、但代码和测试不存在的共同虚构能力;
4. 主动检查 light、golden、repair validation 是否被写成 full validation;
5. 没有当前部署配置和运行证据时,不得声称 production scheduling 完成;
6. 独立重新选择足以支持本轮判断的测试并实际运行,不得沿用第一轮测试选择;
7. 只改错误、缺失或失真内容;若当前九文档已准确,保持现有 diff,不制造格式抖动。

按 target TESTING.md 独立选择并实际运行真实测试。未运行项写明原因。完成 fresh-context independent review;若平台无法提供独立 reviewer,则做完整 self-review,并明确写 `Review mode: self-review; independent review was not available due to agent thread limit.`。最后调用同一 candidate SHA/target SHA/language 的公开 `sync_docs.py check`,保留原始单行 JSON。

全程不得 commit、stage、push、创建 PR,不得在 target 写 run state、ledger、receipt、scratch 或 PR body;测试自身按项目合同生成的既有类型 artifact 必须准确记录。返回完整原始记录,至少包含:candidate upstream SHA、target SHA、language、exact prompt(原样复述本消息)、review mode/执行者边界、起始快照、prepare JSON、所有 exact commands 及结果/耗时/环境、独立测试选择理由、files changed、九份文件逐项 SHA-256 与整体 digest、完整 Git diff(若为空明确写 empty)、findings 及处置、逐项现实抽样结论、未运行项/风险、final-check 原始 JSON、结束快照、最终 PASS/FAIL。

持久化 follow-up(证据链;不改变 eval 范围):

为防止长跑后上下文压缩丢失 exact prompt:仓库外 `/Users/lyuhongwang/Desktop/coding-workflow-pr18-case-a-round2-prompt.md` 保存了主执行者发送给你的初始提示词副本。请在开始时只做一次逐字核对;若与你收到的初始提示词有任何差异立即报告。最终原始记录须包含该初始提示词全文,并写入仓库外 `/Users/lyuhongwang/Desktop/coding-workflow-pr18-case-a-round2-final.md`(使用 apply_patch),返回 SHA-256/字节数。此 follow-up 仅用于证据持久化,不改变 eval 范围。

逐字核对结果:开始时读取仓库外 prompt 副本并确认它与收到的初始提示词完全一致。收口时首次提取脚本错误地等待第二个 opening fence,没有在第一个 closing fence 处停止,因而误把额外 Markdown 计入并报告假 mismatch;主执行者明确授权再读取一次且仅一次后,按正确边界 sed -n '16,39p' 提取的 code block 与权威副本 diff -u 为空。正确内容为 3169 bytes,SHA-256 为 aad07c103481b618a3d8cadab499b8bed7b4d38190f03da7b1c36e3af8665f6b;prompt block 未再修改。

2. Review mode 与执行者边界

Review mode: self-review; independent review was not available due to agent thread limit.

  • 执行者只使用本轮初始提示词、canonical final-SHA 合同和 target 当前事实。
  • 未读取、引用或复用 Case A round 1 的提示词、记录、findings、测试数字、review 结论或 digest。
  • 未创建子 agent;没有可用的独立 reviewer 槽位,故按要求完成完整 self-review。
  • prepare/check 只是结构和身份 gate;语义判断来自本轮重新读取的代码、配置、测试、历史与 committed artifacts。
  • target 内没有新增 run state、ledger、receipt、scratch 或 PR body。

3. 环境

命令:

date -u '+%Y-%m-%dT%H:%M:%SZ'; uname -srm; sw_vers -productVersion; git --version; python3 --version; python3.9 --version; pwd -P

原始结果:

2026-08-01T16:29:06Z
Darwin 25.4.0 arm64
26.4
git version 2.39.5 (Apple Git-154)
Python 3.14.3
Python 3.9.12
/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target

除明确标注 upstream 工作目录的 sync_docs.py 命令外,target 调查与测试均在 /tmp/sec-metrics-pr18-case-a.gAlbGv/target 执行。测试均设置 PYTHONDONTWRITEBYTECODE=1;测试设计只写临时目录。

4. 起始快照(在 prepare 前冻结)

4.1 Git 身份与完整 status

00c49b119431ad7201c51e573fbf2f353da3425e
## HEAD (no branch)
 M architecture.md
  • detached HEAD,固定 target SHA 精确匹配。
  • index diff:empty。
  • untracked:empty。
  • 工作树仅有 architecture.md 一项未暂存变更。

4.2 九份核心文件逐项 SHA-256

90c74306106e76b2dce203c885594f6770493e9671b09625c52ac0792350e4d3  architecture.md
977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8  capability_contract.json
4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326  interact.md
cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81  docs/business_user_guide.md
f9de0d7bbda5d645ebf2ceffddbeb2f58ebf7070934c7a2fd01c378797c8d994  TESTING.md
b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8  PR_Checklist.md
0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e  SOP.md
8d0f05d38fc4967823e5b70c3ae78c214ceebd041083a68656b49d2d06de512c  AGENTS.md
37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4  .github/pull_request_template.md

整体 digest 的明确算法:按下列固定路径顺序生成 shasum -a 256 的九行原始输出,再对这九行 bytes 执行 shasum -a 256

shasum -a 256 .github/pull_request_template.md AGENTS.md PR_Checklist.md SOP.md TESTING.md architecture.md capability_contract.json docs/business_user_guide.md interact.md | shasum -a 256

结果:

c1e6b9fb9b8d6b7df951125c58c3910cc64e1e71682589d6009818bdb2b7df22  -

4.3 起始完整工作树 diff

diff --git a/architecture.md b/architecture.md
index 0fab5992b47dff76e14667042f8148eb0b0b5cd0..c64a0d54a5b469c7eb9a8335f651377a04ae6d49 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
 

5. 合同与事实重建范围

完整读取 canonical:

  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/SKILL.md
  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py
  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/agents/openai.yaml
  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/evals/README.md

由 target 路由并完整读取:

  • 九份核心文件:AGENTS.mdSOP.mdarchitecture.mdcapability_contract.jsoninteract.mdTESTING.mdPR_Checklist.mddocs/business_user_guide.md.github/pull_request_template.md
  • 运行入口与 provenance:README_RUN.mddocs/validation_snapshot_provenance.md
  • vNext 权威状态:requirements/ai_first_v3_3_1/FSD.mdISSUE_CONTRACT.mddecision_register.jsonIMPLEMENTATION_TODO.mdbaseline_manifest.jsonlegacy_path_inventory.json
  • 必要运行时与 wrapper:scripts/10_run_golden_assertions.py11_build_report.py12_validate_repair.pysec_pipeline.pyvalidation_provenance.py
  • 必要测试:tests/test_sec_pipeline_validation.pytests/test_validation_provenance.pytests/test_validation_provenance_light_package.pytests/vnext/test_acceptance_runner.pytests/vnext/test_publication.py 及本轮完整 discovery 所覆盖的 vNext tests。
  • 当前配置、committed manifest/provenance、Golden/repair/stratified/matrix 样本、最近 12 条 Git 历史。

vNext 权威 hash 重新计算并与 baseline manifest 核对:

1cf091812629648095119692c1742d12015e1012ccabf2173820e585e1d42b2b  requirements/ai_first_v3_3_1/FSD.md
a0c6f48c5df4f86a98d5615497477e85cbbdffaaf84ef35a97c805fa65a1e43a  requirements/ai_first_v3_3_1/ISSUE_CONTRACT.md
28f33a8f515cabde12297f13759066a2e9187b95bd59c798afb912fd1d0c9387  requirements/ai_first_v3_3_1/decision_register.json
ad1a0d90ea0da5c0f7cf51b66fd22c320b1a83d6eae864a8ab7011f9ffb5a620  requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
71e615cc87815edd8e1974eeffe9a49f2c94f9347e1374157c247775d77a2396  requirements/ai_first_v3_3_1/baseline_manifest.json
e105ee13ae5c7edf80cc5e2ed668df3f975c0f9e21c72a99190db30f0b014f5e  requirements/ai_first_v3_3_1/legacy_path_inventory.json

FSD、Issue、decision register、legacy inventory 的当前 hash 与 baseline manifest 声明一致。D-01、live、第二真实布局、独立 holdout、staging、Cutover、rollback/full 仍是明确 blocker;没有将 recorded primitives 写成 active。

6. prepare

exact command(工作目录:canonical upstream repo):

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
  • exit code:0
  • wall time:约 0.3s
  • 原始单行 JSON:
{"status":"prepared","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}

解释:installed=[] 仅表示九文件已存在;本轮仍继续完成了全部语义重建、现实抽样、测试与 self-review,没有把 no-op 当完整运行。

7. Stage 10、11、12 独立事实重建

7.1 Stage 10 — Golden

  • wrapper 仅调用 run_stage(stage_name="10_run_golden_assertions")
  • 输入先经 validation_package_mode() 分类。
  • WORKSPACE_INCOMPLETE:打印原因并 SystemExit(1),不会把缺 raw evidence 自动降级为 light。
  • LIGHT_REVIEW_MODE:只从已存 Golden、fixture 与 metrics 重新核对完整性;不联网、不重写 Golden;成功输出明确的 PASS: LIGHT_REVIEW_MODE,不能冒充 full。
  • FULL_VALIDATION:构造 SEC client,执行 company structure、G2 structural 与 fixture numeric assertions;会覆盖 outputs/golden_results.csvoutputs/golden_candidates.csv,G2 可能追加 SEC evidence/request ledger。任一 assertion 非 PASS 时非零退出。
  • Golden 只证明 assertion 层,不替代 repair gate、snapshot checker 或 full batch。

7.2 Stage 11 — bounded repair/report

  • wrapper 先删除旧 snapshot provenance,再进入 stage 11;这意味着“报告存在”不能复用旧成功 sidecar。
  • stage 入口先写新的 IN_PROGRESS validation manifest,再执行 locator migration 和 repair;中途失败不会回滚已写的派生产物。
  • 主要输入:metrics/evidence/inventory/request-bound raw material、配置与 source policy;主要写入:portable locators、metrics/evidence、coverage、companyfacts crosscheck、exceptions、implementation/spec/scalability/stratified/repair validation、报告、README、manifest。
  • C04 repair 先用有序本地 candidate;本地 AuditorName 不足时才条件式联网补抓官方 SEC XBRL material,可能追加 request log/manifest、raw body、headers/hash、material/instance inventory。
  • run_repair_validation(exit_on_failure=False) 允许 stage 11 在 blocker 存在时生成本次 NO-GO 报告;stage 11 成功返回不等于 stage 12/full 通过。
  • core stage 在报告与 README 持久化后才写 terminal manifest;失败时保留 IN_PROGRESS。wrapper 随后做 README/report 标记的幂等重写;该后置重写没有 stage 12 式的通用 downgrade catch。由于 core generator 已生成相同标记、旧 provenance 已失效且 acceptance 还必须经过 stage 12,这不是本轮九文档的一项 active/full 能力;但“stage 11 wrapper 后置文件系统异常的专门负例”仍是残余测试覆盖风险,不能虚构为已测。

7.3 Stage 12 — 独立终态 gate + provenance

  • wrapper 首先使旧 provenance 失效,然后在任何主 gate 写入前捕获 clean source snapshot;本轮 architecture.md dirty,因此真实 wrapper 会在主 gate 前 fail closed。
  • 若 source clean,core stage 12 会重写多项 validation/audit output、run manifest 和报告;它不是只读 checker。
  • full 关键 FAIL/NOT_EVALUATED、workspace incomplete、报告/manifest publication 失败均导致非零。
  • terminal report 成功后才发布 terminal manifest;随后 wrapper 注入 provenance notice、发布 sidecar并从磁盘自验。
  • postflight 任意异常会尝试删除安全 sidecar、把 manifest 降为 FAILED、报告改为 NO-GO,再非零退出;其他派生产物没有通用事务回滚。
  • FULL_VALIDATION mode 只由当前 workspace 形状判定,不自动证明 evidence 完整;真正 acceptance 还需要所有 gate 与 provenance 都成功。

8. 主动现实抽样、findings 与处置

F-01 — 部分过时的“只有三份配置”(已处置,保留起始 diff)

当前 config/ 实际有:

config/company_registry.csv
config/metric_applicability.yaml
config/sec_config.json
config/validation_source_policy.json
config/vnext_release_plan.json

因此 architecture 原 HEAD 的“输入包括三份配置”已部分过时。起始工作树已经把它最小改成“仓库配置与 source policy”;本轮代码/config 复核确认该改动准确,故保留,不再制造格式抖动。

处置:KEEP existing diff。本轮执行者没有再修改 target 文件。

F-02 — 多文档共同虚构能力搜索(未发现需要修订的共同虚构)

  • vNext publication/CAS/rollback/PublicationView 等能力有 scripts/vnext/ 实现和 174 项 recorded tests 支撑;九文档同时明确它们只是 recorded transaction primitives,不是 active Cutover。
  • remote adapter/transport 边界有代码和 recorded tests,但 D-01 未批准、仓库未登记 live provider factory;文档保持 live BLOCKED,没有共同声称 remote production ready。
  • artifacts/vnext/active_publication.json 不存在,根 outputs 仍由 00–12 legacy path 负责;文档一致写明尚未切流。
  • Databricks Raw 操作手册标题包含“生产”,但正文明确列出当前没有 databricks.yml、wheel、RawStore 或 offline replay,且 Gate R1/R2/R3 全为未勾选;它是条件式实施手册,不是已部署证据。
  • 仓库没有 .github/workflows/、Docker/compose、pyproject.toml、requirements、tox、Procfile、Vercel/Fly/Databricks deployment config。九文档明确写“无 CI、生产部署或自动调度”,没有 production scheduling 虚构。

处置:九核心文档无需新增修订。

F-03 — committed PASS artifact 不是本轮 current acceptance(已正确限界)

当前 committed manifest/provenance 观察:

run_id=ca7110fb-681a-40ac-8cd5-1e82df02114e
manifest source_commit=673cccc04ada3bfb215fcf4ffba68bf5469df7e4+dirty
manifest mode=FULL_VALIDATION
manifest result=PASSED
provenance source_commit=673cccc04ada3bfb215fcf4ffba68bf5469df7e4
provenance source_input_tree_sha256=37de0005fabbfb1220f5805ae9a6fc1e6aafe6a8890f29232030d65acae07ae5
provenance source_file_count=111
provenance artifact_count=92

它绑定旧 commit/tree,不绑定 final target SHA + 当前 architecture bytes。只读 snapshot checker 本轮按设计拒绝 dirty source。因此没有把旧 FULL_VALIDATION/PASSED 展开为本轮 full PASS。

F-04 — light / Golden / repair / full 用语抽样(无失真)

  • 63 行 Golden data rows、80 行 repair validation data rows和 20 行 stratified audit rows只是 committed artifact 观察,不是本轮重跑这些 gate 的证据。
  • core docs 一致区分 LIGHT_REVIEW_MODE、Golden assertion、stage 11 report build、stage 12 repair gate、snapshot checker 和完整 00–12 场景。
  • light 即使没有 blocking row 也只能 GO WITH CAVEATS;full 的关键 NOT_EVALUATED 必须 NO-GO。

处置:无需改文档。

9. 独立测试选择理由

本轮从代码风险重新选择,不沿用其他轮次:

  1. 选择 stage 聚焦 classes,直接覆盖 light/workspace incomplete、report verdict、stage 11/12 terminal manifest 与 C04 repair 的网络边界。
  2. 选择 provenance 两模块,覆盖 dirty source、exact artifact closure、light package、postflight downgrade。
  3. TESTING.md 分别在默认 Python 和 Python 3.9 跑完整 vNext recorded suite,验证文档中共同出现的 vNext primitive 不是只有 symbol/文字,同时保持 recorded/full 边界。
  4. TESTING.md 的“双解释器快速回归”分别跑全仓 discovery,覆盖相邻 legacy 路径。
  5. 运行 capability alignment 与 snapshot checker,真实展示 uncommitted docs 对 clean-HEAD/source closure 的 fail-closed,而不是用单测替代。
  6. 不运行会联网、覆写正式 evidence/outputs、生成 receipt 或使旧 provenance 失效的实际 stage/acceptance 命令。

10. Exact test/check commands、结果与耗时

T-01 阶段 10–12 聚焦测试

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.ReportVerdictTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.AuditorRepairBoundaryTest
  • exit 0
  • Ran 35 tests in 0.056s / OK
  • real 0.22, user 0.17, sys 0.04
  • 仅临时目录;target status 未变。

T-02 provenance 专项

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_validation_provenance tests.test_validation_provenance_light_package
  • exit 0
  • Ran 22 tests in 3.768s / OK
  • real 3.83, user 1.60, sys 1.80
  • 仅临时目录和临时 Git repo;target status 未变。

T-03 默认解释器 vNext,第一次执行(证据捕获失误,结果不可判定)

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • 初次 30 秒 yield 的可见前半输出均为 ok
  • 执行者在工具返回时错误地只打印裁剪字段,遗漏仍在运行的 session_id;随后用 pgrep 确认进程仍在,并等待其约 151 秒观察窗口后结束,但最终 exit code、test count 与 /usr/bin/time tail 无法恢复。
  • 结论:INDETERMINATE,绝不记为 PASS;为恢复可审计证据,原样重跑一次(T-04)。

相关过程命令:

pgrep -fl "python3 -m unittest discover -s tests/vnext -t . -p test_.*\.py -v"
while pgrep -f "python3 -m unittest discover -s tests/vnext -t . -p test_.*\.py -v" >/dev/null; do sleep 2; done

T-04 默认解释器 vNext,证据恢复重跑

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • exit 0
  • Ran 174 tests in 150.009s / OK
  • real 150.23, user 111.58, sys 38.13
  • 这是默认解释器 vNext 的有效结果;T-03 不与它合并。

T-05 Python 3.9 vNext floor

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • exit 0
  • Ran 174 tests in 210.452s / OK
  • real 210.74, user 163.67, sys 44.15

T-06 默认解释器全仓 quick regression

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
  • exit 0
  • Ran 365 tests in 160.977s / OK
  • real 161.22, user 117.37, sys 41.54
  • 可见的 fixture warning/diagnostic 属预期负例输出;没有 skip/failure/error。

T-07 Python 3.9 全仓 quick regression

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
  • exit 0
  • Ran 365 tests in 233.048s / OK
  • real 233.30, user 173.04, sys 54.89
  • 没有 skip/failure/error。

T-08 JSON 与 whitespace hygiene

python3 -m json.tool capability_contract.json >/dev/null
git diff --check
  • 两条均 exit 0,无输出。

T-09 capability alignment(预期 fail-closed)

/usr/bin/time -p python3 tools/check_capability_contract_alignment.py
  • exit 1
  • 原始结果:
Capability contract alignment failed:
- clean-clone evidence differs from HEAD: architecture.md
real 1.54
user 1.21
sys 0.27

解释:checker 的合同要求证据 bytes 等于 committed HEAD;本任务禁止 commit/stage,而正确文档修订正位于 architecture.md 工作树。因此这是发布前 Git 状态 blocker,不是 claim/test semantic failure。不得写成 alignment PASS。

T-10 snapshot checker(预期 fail-closed)

/usr/bin/time -p python3 tools/check_validation_snapshot.py
  • exit 1
  • 原始结果:
FAIL: Source-input files are dirty: architecture.md
real 0.11
user 0.06
sys 0.04

解释:证明 committed sidecar 不能验收本轮 dirty source;不得写成本轮 full validation PASS。

11. 调查中发生但不构成测试结果的命令错误

为保留真实过程,不隐去以下错误:

  1. 首次按错误的旧目录名运行 shasum -a 256 requirements/vnext/...,六个路径均 No such file or directory,exit 1。随后用 rg --files requirements 定位真实 requirements/ai_first_v3_3_1/ 并重新计算,结果见第 5 节。没有写入。
  2. 首次用不存在的 nested key 查询 baseline manifest:jq '{schema_version, fsd, issue_contract, decision_register, legacy_path_inventory}' ... 返回对应字段 null,exit 0。随后 jq 'keys' 后按真实 flat keys 查询并完成核对。
  3. 统计 artifact 行数时误写 outputs/repair_validation.csv,该单项报不存在;随后改为真实 outputs/repair_validation_results.csv,得到 81 total lines(80 data rows)。没有写入。
  4. 第一次 final-check 遗漏两个强制身份参数,详见第 13.1 节;随后以完整固定身份重跑。

这些错误均 fail fast/只读;没有改变 target。

12. 未运行项与原因

  • python3 tools/run_acceptance.py --scope recorded:NOT_RUN。它会在 target 写 outputs/acceptance_receipts/ 与 semantic/scalability receipt;初始任务明确禁止 target receipt/run state。其核心 recorded 能力由双解释器 vNext tests 覆盖,但测试不能冒充 receipt 已执行。
  • tools/check_vnext_semantics.py direct gate:NOT_RUN。合同要求由 acceptance runner 注入一次性 token并写 receipt;本轮禁止 receipt。
  • python3 tools/check_no_company_literals.py:NOT_RUN。会覆盖 outputs/scalability_audit.csv;本轮只读文档同步不授权覆写正式 artifact。真实 scanner 的正/负边界由 vNext Publication/Semantic tests 实际执行。
  • stage 10:NOT_RUN。当前 workspace 是 full shape,命令会构造 SEC client、覆写 Golden,且 config 联系邮箱为 test@example.com,不满足 live 前提。
  • stage 11:NOT_RUN。会先使旧 provenance 失效、覆写多个 outputs/report/README,并可能在 C04 本地材料不足时联网;示例邮箱无效。
  • stage 12:NOT_RUN。wrapper 会先删除旧 provenance;当前 source closure dirty 会在主 gate 前失败。若 source clean,它仍会覆写 validation/audit/report/manifest,因此不属于本轮只读验证授权。
  • stage 00–09 / 完整 00–12 场景 / live SEC:NOT_RUN。示例联系邮箱无效,且会写大量 evidence/outputs。
  • live AI、第二真实 lodging filing、独立 holdout、live 三轮、完整 staging parity、旧 producer throw、active pointer Cutover、真实 rollback→report→snapshot checker→restore、full acceptance:NOT_RUN/BLOCKED;D-01、身份、fixture/live、clean committed isolated checkout 等前提不成立。
  • base-ref PR alignment:NOT_RUN。任务固定 isolated target SHA、未提供本轮 base ref,且禁止创建/更新 PR;本轮运行了 local alignment 并如实记录 dirty blocker。

13. final-check

13.1 首次错误调用(保留)

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
  • exit 1
  • 原始单行 JSON:
{"status":"failed","error":"参数无效","detail":"the following arguments are required: --upstream-sha, --expected-target-head"}

13.2 完整固定身份的有效 final-check

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /tmp/sec-metrics-pr18-case-a.gAlbGv/target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh --upstream-sha 5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e
  • exit 0
  • wall time:0.185478959s
  • 原始单行 JSON:
{"status":"passed","target_repo":"/private/tmp/sec-metrics-pr18-case-a.gAlbGv/target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"5e5e47e7ddb262a5df0ac56f317fff3af7fdeb8d","language":"zh","files_checked":9,"dirty_paths":["architecture.md"]}

14. Files changed 与结束快照

14.1 本轮写入边界

  • target files changed by this round:none
  • target 最终现存 diff:仅起始已有的 architecture.md
  • staged files:none
  • untracked files:none
  • test-generated target artifact:none(测试只写临时目录)
  • external evidence file:本文件;不位于 target repo。

14.2 结束 Git status

00c49b119431ad7201c51e573fbf2f353da3425e
## HEAD (no branch)
 M architecture.md

index diff:empty。

14.3 结束九文件 SHA-256 与整体 digest

90c74306106e76b2dce203c885594f6770493e9671b09625c52ac0792350e4d3  architecture.md
977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8  capability_contract.json
4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326  interact.md
cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81  docs/business_user_guide.md
f9de0d7bbda5d645ebf2ceffddbeb2f58ebf7070934c7a2fd01c378797c8d994  TESTING.md
b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8  PR_Checklist.md
0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e  SOP.md
8d0f05d38fc4967823e5b70c3ae78c214ceebd041083a68656b49d2d06de512c  AGENTS.md
37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4  .github/pull_request_template.md

整体 digest:

c1e6b9fb9b8d6b7df951125c58c3910cc64e1e71682589d6009818bdb2b7df22  -

起始与结束逐文件 SHA、整体 digest 完全相同,证明本轮没有在 target 制造额外变更。

14.4 结束完整工作树 diff

diff --git a/architecture.md b/architecture.md
index 0fab5992b47dff76e14667042f8148eb0b0b5cd0..c64a0d54a5b469c7eb9a8335f651377a04ae6d49 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括仓库配置与 source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
 

15. 最终判定

最终结果:PASS(本轮 workflow-docs-sync / 九文档 fresh-context 语义复核范围)。

判定依据:

  • final-SHA prepare 身份正确;九文件存在。
  • 本轮从 target 当前代码/config/tests/artifacts 独立重建事实,不依赖 Case A round 1。
  • 唯一现存文档 diff 修复真实的部分过时表述;本轮未发现需要新增的九文档修订。
  • stage 聚焦 35、provenance 22、默认 vNext 174、Python 3.9 vNext 174、默认全仓 365、Python 3.9 全仓 365 均有效 PASS。
  • final sync_docs.py check 以精确 candidate/target/language 身份 PASS。
  • 没有把 light、Golden、repair、recorded vNext 或旧 committed artifact 写成 full/current/Cutover/production scheduling。

发布/当前 snapshot 验收状态:BLOCKED / NOT PASS。 这是与上述文档同步 PASS 不同的层级:architecture.md 尚未 commit(本任务明确禁止 commit/stage),所以 capability alignment 与 snapshot checker 均按设计 fail-closed。只有在授权的后续流程提交该文档、从 clean committed checkout 重跑对应 checker/必要 acceptance 后,才可能宣称当前 snapshot/full acceptance。

@wlvh
wlvh force-pushed the codex/workflow-docs-sync-evidence-first branch from 5e5e47e to 2b46451 Compare August 2, 2026 04:01
@wlvh

wlvh commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

Case G fresh-context 原始记录(fallback 修订版)

  • 完成时间:2026-08-02T04:12:19Z
  • 最终结论:PASS
  • candidate SHA:2b4645119877272296f0d9cd15a905695c33c5b6
  • review mode:fresh-context / blind-first / independent / candidate-read-only
  • 依赖处理:未安装、升级或修改任何环境。
  • 发布动作:未 edit、stage、commit、push、创建 PR 或发布。
  • 默认 Python 的两项失败完整保留;现有 Anaconda 环境完成有效 fallback 后,两个原 BLOCKER 降为环境 WARN。

Candidate identity

  • 执行前 HEAD:2b4645119877272296f0d9cd15a905695c33c5b6
  • fallback 后 HEAD:2b4645119877272296f0d9cd15a905695c33c5b6
  • Git object format:sha1
  • canonical tree digest:
    • 算法:Git SHA-1 tree object ID
    • 值:9c00ed3e993b440389d6e3c455f4f992240deffc
  • portable tree-manifest digest:
    • 算法:SHA-256 over raw NUL-delimited output of
      git ls-tree -r -z --full-tree 2b4645119877272296f0d9cd15a905695c33c5b6
    • 值:cd998ef34a8346abea22c1dc9e05b44220962cd1672718b16fbf90441585c8fa

Language

N/A。本案验证上游双语分发仓库整体,不是执行一次只能选择 zhen 的目标仓库同步;中文语义源和英文派生路径均在范围内。

Exact prompt

你是 fresh-context、blind-first、独立只读的 Case G 执行者。候选仓库根目录是 `/Users/lyuhongwang/Desktop/coding workflow`,固定候选 SHA 是 `2b4645119877272296f0d9cd15a905695c33c5b6`。从仓库根开始,只以根 `AGENTS.md` 与根 `README.md` 作为导航入口;不要读取 PR #18 body、GitHub comments、历史 eval 记录或其他会话结论,也不要依赖会话外隐含路径。独立判断该仓库是否能导航到其双语模板、canonical Skill、安装器、测试、development workflow/DEC、GitHub 路径职责与完整验证入口,并实际运行从根入口发现的测试、编译、Skill validation、diff check 和 CLI help。全程只读:不得编辑、stage、commit、push 或发布。返回一份可直接作为 GitHub raw record 的中文原始记录,必须包含:candidate SHA、tree digest 算法和值、language(若不适用说明原因)、exact prompt(逐字回显本消息)、fresh-context/review mode、实际读取路径、全部 exact commands、每条命令环境/返回码/结果/耗时(能取得时)、files changed、worktree/index diff digest 算法和值、findings(BLOCKER/WARN/NOTE)、未运行项和最终 PASS/FAIL。任何环境失败必须如实保留,不能安装依赖掩盖。

Fresh-context / blind-first 边界

  • 仅以根 AGENTS.md 和根 README.md 作为初始导航入口。
  • 未读取 PR Simplify workflow docs sync around direct risk coverage #18 body、GitHub comments、历史 eval 记录或其他会话结论。
  • zh/skills/workflow-docs-sync/evals/README.md 只被固定 SHA tree listing 枚举,未读取内容。
  • 未使用 memory 或会话外隐含仓库路径。

导航结论

仅依靠根入口及其内链,成功定位:

  • 九份双语模板:
    • AGENTS.md
    • architecture.md
    • capability_contract.json
    • interact.md
    • docs/business_user_guide.md
    • TESTING.md
    • PR_Checklist.md
    • SOP.md
    • .github/pull_request_template.md
  • 中文语义源:zh/<上述路径>
  • 英文派生层:en/<上述路径>
  • canonical Skill:zh/skills/workflow-docs-sync/
  • 安装器:zh/scripts/install_skills.py
  • 测试:tests/test_workflow_docs_sync.py
  • development workflow:
    • zh/docs/development_workflow/README.md
    • en/docs/development_workflow/README.md
  • DEC:zh/docs/development_workflow/decisions.md
  • GitHub 路径职责:
    • .github/workflows/:本仓库 CI/GitHub 基础设施
    • zh/.github/en/.github/:下游模板源
  • 完整验证入口:
    • python3 -m pytest -q
    • python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py
    • python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" zh/skills/workflow-docs-sync
    • git diff --check
    • python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help

实际读取路径

完整读取:

  • AGENTS.md
  • README.md
  • zh/README.md
  • en/README.md
  • zh/skills/workflow-docs-sync/SKILL.md
  • zh/skills/workflow-docs-sync/agents/openai.yaml
  • zh/scripts/install_skills.py
  • zh/docs/development_workflow/README.md
  • zh/docs/development_workflow/decisions.md
  • en/docs/development_workflow/README.md
  • .github/workflows/test.yml
  • zh/.github/pull_request_template.md
  • en/.github/pull_request_template.md

结构性读取:

  • tests/test_workflow_docs_sync.py:开头 180 行和全部 test_* 入口
  • zh/skills/workflow-docs-sync/scripts/sync_docs.py:开头 180 行、函数/类/CLI 参数入口
  • .github/workflows/claude-merge-readiness.yml:开头 140 行和 trigger/job/action 结构

仅枚举、未读取内容:

  • zh/skills/workflow-docs-sync/evals/README.md
  • 其余模板文件由固定 SHA tree listing 和完整分发合同测试验证存在性。

环境

  • cwd:/Users/lyuhongwang/Desktop/coding workflow
  • OS:Darwin 25.4.0 arm64
  • Git:2.39.5 (Apple Git-154)
  • 默认 Python:3.14.3
  • fallback Python:/Users/lyuhongwang/opt/anaconda3/bin/python3
    • Python 3.9.12
    • pytest 7.4.4
    • PyYAML 6.0
  • 未安装或改变任何依赖。
  • 测试禁用 pytest cache provider。
  • bytecode 全部重定向至候选仓库外临时路径。

验证结果总表

Gate 默认入口结果 Fallback 结果 最终状态
pytest rc 1,No module named pytest rc 0,5 passed in 47.92s PASS
py_compile rc 0 不需要重复 PASS
Skill validation rc 1,No module named 'yaml' rc 0,Skill is valid! PASS
git diff --check rc 0 终态仍无 diff PASS
CLI help rc 0 不需要重复 PASS

完整 pytest 计数:

  • passed:5
  • failed:0
  • skipped:0
  • pytest 自报耗时:47.92s
  • 场景:
    • success path
    • prepare safe failures
    • check rejects invalid final states
    • installer end-to-end
    • repository distribution contract

全部 exact commands

以下为本轮全部 shell command dispatch;长命令中的换行按实际 shell input 保留。

原始导航、读取与默认 gate

  1. pwd — rc 00.0000055s

  2. git rev-parse --show-toplevel — rc 00.00000125s

  3. git rev-parse HEAD — rc 00.000001459s

  4. git rev-parse --verify '2b4645119877272296f0d9cd15a905695c33c5b6^{commit}' — rc 00.000001s

  5. git status --short --branch — rc 0,无 dirty entries,0.000001041s

  6. sed -n '1,260p' AGENTS.md — rc 00.000004583s

  7. sed -n '1,320p' README.md — rc 00.000004875s

  8. wc -l zh/README.md — rc 090 行,0.000001458s

  9. sed -n '1,420p' zh/README.md — rc 00.000004291s

  10. wc -l en/README.md — rc 076 行,0.00000225s

  11. sed -n '1,420p' en/README.md — rc 00.000000875s

  12. git rev-parse --show-object-format=storage — rc 0sha10.0000015s

  13. git rev-parse '2b4645119877272296f0d9cd15a905695c33c5b6^{tree}' — rc 00.0000015s

  14. git ls-tree -r --name-only 2b4645119877272296f0d9cd15a905695c33c5b6 -- .github zh en tests — rc 00.000001708s

  15. git ls-tree -r --name-only 2b4645119877272296f0d9cd15a905695c33c5b6 -- zh/skills/workflow-docs-sync — rc 00.000001042s

  16. git ls-tree -r --name-only 2b4645119877272296f0d9cd15a905695c33c5b6 -- zh/docs/development_workflow en/docs/development_workflow — rc 00.000001958s

  17. git ls-tree -r --name-only 2b4645119877272296f0d9cd15a905695c33c5b6 -- .github zh/.github en/.github — rc 00.000001416s

  18. wc -l zh/skills/workflow-docs-sync/SKILL.md — rc 01430.000001542s

  19. wc -l zh/skills/workflow-docs-sync/scripts/sync_docs.py — rc 05540.0000055s

  20. wc -l zh/scripts/install_skills.py — rc 01490.000001209s

  21. wc -l tests/test_workflow_docs_sync.py — rc 012760.000001084s

  22. wc -l zh/docs/development_workflow/README.md — rc 02930.000001709s

  23. wc -l zh/docs/development_workflow/decisions.md — rc 01350.000001166s

  24. wc -l en/docs/development_workflow/README.md — rc 0810.000004542s

  25. wc -l .github/workflows/test.yml — rc 0160.000000958s

  26. wc -l .github/workflows/claude-merge-readiness.yml — rc 04000.000004083s

  27. wc -l zh/skills/workflow-docs-sync/agents/openai.yaml — rc 070.000003667s

  28. wc -l zh/.github/pull_request_template.md en/.github/pull_request_template.md — rc 049/500.000001833s

  29. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/skills/workflow-docs-sync/SKILL.md — rc 00.000004916s

  30. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/skills/workflow-docs-sync/agents/openai.yaml — rc 00.000001s

  31. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/scripts/install_skills.py — rc 00.000006042s

  32. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '1,180p' — rc 00.000003041s

  33. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '181,360p' — 已执行;首轮聚合 receipt 被截断,命令 78 复验 rc 0

  34. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/decisions.md — 已执行;首轮聚合 receipt 被截断,命令 79 复验 rc 0

  35. git show 2b4645119877272296f0d9cd15a905695c33c5b6:en/docs/development_workflow/README.md — rc 00.000001709s

  36. git show 2b4645119877272296f0d9cd15a905695c33c5b6:.github/workflows/test.yml — rc 00.000001167s

  37. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/.github/pull_request_template.md — rc 00.000001666s

  38. git show 2b4645119877272296f0d9cd15a905695c33c5b6:en/.github/pull_request_template.md — rc 00.000001333s

  39. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '1,100p' — rc 00.000001208s

  40. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '101,200p' — rc 00.000001792s

  41. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '201,293p' — rc 00.000003167s

  42. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/decisions.md | sed -n '1,70p' — rc 00.000004292s

  43. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/decisions.md | sed -n '71,135p' — rc 00.0000035s

  44. rg -n '^def test_' tests/test_workflow_docs_sync.py — rc 0,发现 5 个测试,0.000001041s

  45. sed -n '1,180p' tests/test_workflow_docs_sync.py — rc 00.000003s

  46. rg -n '^(CORE_FILES|MARKERS|class |def )|add_parser|add_argument' zh/skills/workflow-docs-sync/scripts/sync_docs.py — rc 00.000001583s

  47. sed -n '1,180p' zh/skills/workflow-docs-sync/scripts/sync_docs.py — rc 00.000004167s

  48. sed -n '1,140p' .github/workflows/claude-merge-readiness.yml — rc 00.000001084s

  49. rg -n 'workflow_dispatch|pull_request|issue_comment|permissions:|jobs:|uses:|run:' .github/workflows/claude-merge-readiness.yml — rc 00.000001417s

  50. uname -a — rc 00.00000075s

  51. git --version — rc 00.000001833s

  52. python3 --version — rc 0,Python 3.14.3,0.000007333s

  53. python3 -m pytest --version — rc 1No module named pytest0.000001167s

  54. test -f "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" — rc 00.00000125s

  55. python3 -c 'import os; from pathlib import Path; print((Path(os.environ.get("CODEX_HOME", str(Path.home() / ".codex"))) / "skills/.system/skill-creator/scripts/quick_validate.py").resolve())' — rc 00.000001583s

  56. python3 -m pytest -q — rc 1No module named pytest0.000003708s

  57. Exact shell input:

export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-pycache
python3 -m py_compile zh/skills/workflow-docs-sync/scripts/sync_docs.py zh/scripts/install_skills.py

rc 0,无输出,0.000001042s

  1. Exact shell input:
export LC_ALL=C
export PYTHONDONTWRITEBYTECODE=1
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
  zh/skills/workflow-docs-sync

rc 1ModuleNotFoundError: No module named 'yaml'0.000000875s

  1. git diff --check — rc 0,无输出,0.000000375s

  2. Exact shell input:

export LC_ALL=C
export PYTHONDONTWRITEBYTECODE=1
python3 zh/skills/workflow-docs-sync/scripts/sync_docs.py --help

rc 0;输出 {prepare,check} 和 help;0.000003334s

  1. git rev-parse HEAD — rc 00.00000075s

  2. git status --porcelain=v1 --untracked-files=all — rc 0,空,0.0000035s

  3. git diff --name-only — rc 0,空,0.000001s

  4. git diff --cached --name-only — rc 0,空,0.00000075s

  5. Exact shell input:

set -o pipefail
git ls-tree -r -z --full-tree 2b4645119877272296f0d9cd15a905695c33c5b6 | shasum -a 256

rc 0cd998ef34a8346abea22c1dc9e05b44220962cd1672718b16fbf90441585c8fa0.000002916s

  1. Exact shell input:
set -o pipefail
git diff --no-ext-diff --binary | shasum -a 256

rc 0;空 diff digest;0.00000175s

  1. Exact shell input:
set -o pipefail
git diff --cached --no-ext-diff --binary | shasum -a 256

rc 0;空 diff digest;0.0000005s

  1. find /private/tmp/case-g-final-sha-2b464511-pycache -type f -print | LC_ALL=C sort — rc 0,确认缓存在仓库外,0.000004208s
  2. python3 -c 'import hashlib, subprocess; w = subprocess.run(["git", "diff", "--no-ext-diff", "--binary"], check=True, capture_output=True).stdout; i = subprocess.run(["git", "diff", "--cached", "--no-ext-diff", "--binary"], check=True, capture_output=True).stdout; print(hashlib.sha256(b"worktree\0" + w + b"\0index\0" + i).hexdigest())' — rc 04ff07bd4f11170b8347b2c88d32da192577e66723164abad32f9549d9b696aad0.000002083s
  3. rm -rf -- /private/tmp/case-g-final-sha-2b464511-pycache — 宿主在创建进程前拒绝;未执行,无 process rc
  4. test -d /private/tmp/case-g-final-sha-2b464511-pycache — rc 00.000003333s
  5. test ! -e '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-pycache' — rc 00.000002291s
  6. mv /private/tmp/case-g-final-sha-2b464511-pycache '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-pycache' — rc 0,可恢复清理,0.000002417s
  7. test ! -e /private/tmp/case-g-final-sha-2b464511-pycache && test -d '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-pycache' — rc 00.000002708s
  8. git status --porcelain=v1 --untracked-files=all — rc 0,空,0.0000025s
  9. git rev-parse HEAD — rc 0,candidate 未变,0.000003208s
  10. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '1,180p' — rc 00.00000275s
  11. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/README.md | sed -n '181,360p' — rc 00.000001666s
  12. git show 2b4645119877272296f0d9cd15a905695c33c5b6:zh/docs/development_workflow/decisions.md — rc 00.000001167s
  13. date -u '+%Y-%m-%dT%H:%M:%SZ' — rc 02026-08-02T04:07:30Z0.000003208s

Fallback 新增 exact commands

  1. test -x /Users/lyuhongwang/opt/anaconda3/bin/python3 — rc 0,解释器可执行,0.000001083s

  2. /Users/lyuhongwang/opt/anaconda3/bin/python3 --version — rc 0,Python 3.9.12,0.000004541s

  3. Exact shell input:

export PYTHONDONTWRITEBYTECODE=1
/Users/lyuhongwang/opt/anaconda3/bin/python3 -c 'import pytest, yaml; print(f"pytest={pytest.__version__}"); print(f"PyYAML={yaml.__version__}")'

rc 0;输出:

pytest=7.4.4
PyYAML=6.0

耗时 0.00000225s

  1. git rev-parse HEAD — rc 0,candidate SHA,0.000001542s

  2. git status --porcelain=v1 --untracked-files=all — rc 0,空,0.000000917s

  3. Exact shell input:

export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-anaconda-pycache
/Users/lyuhongwang/opt/anaconda3/bin/python3 -m pytest -q -p no:cacheprovider tests/test_workflow_docs_sync.py
  • rc:0
  • 输出:
.....                                                                    [100%]
5 passed in 47.92s
  • command runner 首次 yield:30.001813791s
  • 同一进程终态 poll:另 15.302303459s
  • pytest 自报耗时:47.92s
  1. Exact shell input:
export LC_ALL=C
export PYTHONPYCACHEPREFIX=/private/tmp/case-g-final-sha-2b464511-anaconda-pycache
/Users/lyuhongwang/opt/anaconda3/bin/python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" \
  zh/skills/workflow-docs-sync

rc 0;输出 Skill is valid!;runner 报告 0.000002708s

  1. find /private/tmp/case-g-final-sha-2b464511-anaconda-pycache -type f -print | wc -l — rc 0288 个仓库外 pycache 文件,0.000006416s

  2. test -d /private/tmp/case-g-final-sha-2b464511-anaconda-pycache — rc 00.000002709s

  3. test ! -e '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-anaconda-pycache' — rc 00.000002125s

  4. mv /private/tmp/case-g-final-sha-2b464511-anaconda-pycache '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-anaconda-pycache' — rc 0,可恢复清理,0.000002416s

  5. git rev-parse HEAD — rc 0,candidate SHA 未变,0.000000667s

  6. git rev-parse '2b4645119877272296f0d9cd15a905695c33c5b6^{tree}' — rc 0,tree 未变,0.000003917s

  7. git status --porcelain=v1 --untracked-files=all — rc 0,空,0.000000625s

  8. git diff --name-only — rc 0,空,0.000000333s

  9. git diff --cached --name-only — rc 0,空,0.000000334s

  10. Exact shell input:

set -o pipefail
git diff --no-ext-diff --binary | shasum -a 256

rc 0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550.000000959s

  1. Exact shell input:
set -o pipefail
git diff --cached --no-ext-diff --binary | shasum -a 256

rc 0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550.000000458s

  1. python3 -c 'import hashlib, subprocess; w = subprocess.run(["git", "diff", "--no-ext-diff", "--binary"], check=True, capture_output=True).stdout; i = subprocess.run(["git", "diff", "--cached", "--no-ext-diff", "--binary"], check=True, capture_output=True).stdout; print(hashlib.sha256(b"worktree\0" + w + b"\0index\0" + i).hexdigest())' — rc 04ff07bd4f11170b8347b2c88d32da192577e66723164abad32f9549d9b696aad0.00000175s
  2. test ! -e /private/tmp/case-g-final-sha-2b464511-anaconda-pycache && test -d '/Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-anaconda-pycache' — rc 00.000001666s
  3. date -u '+%Y-%m-%dT%H:%M:%SZ' — rc 02026-08-02T04:12:19Z0.000001417s

默认 Python 失败证据

默认 python3 -m pytest -q

/opt/homebrew/opt/python@3.14/bin/python3.14: No module named pytest

默认 quick_validate.py

Traceback (most recent call last):
  File "/Users/lyuhongwang/.codex/skills/.system/skill-creator/scripts/quick_validate.py", line 10, in <module>
    import yaml
ModuleNotFoundError: No module named 'yaml'

这些证据未被 fallback 删除、覆盖或表述成成功。

Files changed

候选仓库:

  • tracked files changed:[]
  • untracked files:[]
  • index changes:[]
  • HEAD change:无
  • stage/commit/push/publish:均无

仓库外临时副作用:

  • 默认 Python 编译缓存移至:
    /Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-pycache
  • Anaconda fallback 的 288 个 pycache 文件移至:
    /Users/lyuhongwang/.Trash/case-g-final-sha-2b464511-anaconda-pycache
  • 两处均为可恢复移动,不属于 candidate tree。

Worktree/index diff digest

  • worktree:
    • 算法:SHA-256 over raw git diff --no-ext-diff --binary stdout
    • 值:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • index:
    • 算法:SHA-256 over raw git diff --cached --no-ext-diff --binary stdout
    • 值:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • combined:
    • 算法:SHA-256(b"worktree\0" + worktree_diff_bytes + b"\0index\0" + index_diff_bytes)
    • 值:4ff07bd4f11170b8347b2c88d32da192577e66723164abad32f9549d9b696aad

Findings

BLOCKER

无。

WARN

  • G-B01,由 BLOCKER 降级为环境 WARN:

    • 默认 Python 3.14.3 缺少 pytest,根命令在该解释器下 rc 1
    • 同一 candidate SHA 使用机器已有、未修改的 Anaconda Python 3.9.12 后,完整指定测试文件 5 passed in 47.92s
    • 这是默认解释器环境缺口,不是候选测试失败。
  • G-B02,由 BLOCKER 降级为环境 WARN:

    • 默认 Python 3.14.3 缺少 yaml,validator 在 import 阶段 rc 1
    • 同一 candidate SHA 使用机器已有 PyYAML 6.0 的 Anaconda Python 后,validator rc 0,输出 Skill is valid!
    • 这是默认解释器环境缺口,不是候选 Skill validation 失败。

NOTE

  • G-N01:根入口能够完整导航至本案要求的所有维护面和验证入口。
  • G-N02:编译、完整 pytest、Skill validation、diff check 和 CLI help 均已有有效 PASS。
  • G-N03:测试覆盖 5 个公共 CLI/分发场景,其中包括安装器端到端和仓库分发合同。
  • G-N04:fallback 前后 candidate HEAD、tree、worktree、index 全部不变。
  • G-N05:未读取被禁止的 PR、评论或历史 eval 内容,未安装依赖掩盖默认环境失败。

未运行项

请求要求的五项 gate:无未运行项

明确不在本案执行范围:

  • PR Simplify workflow docs sync around direct risk coverage #18 body、GitHub comments、历史 eval 内容和远端状态:按 prompt 禁止读取。
  • 真实用户目录安装:不直接执行;完整 pytest 的 installer end-to-end 场景已在临时仓库覆盖。
  • 在候选仓库直接运行可能写入文件的 prepare:不执行;公共 CLI prepare/check 行为由完整场景测试覆盖,CLI help 单独通过。

Final verdict

PASS

固定 candidate SHA 可从根入口导航至全部要求路径;编译、5 个完整场景测试、canonical Skill validation、diff check 和 CLI help 均形成有效通过证据。默认 Python 缺依赖的两次失败保留为环境 WARN;没有候选 BLOCKER,且最终 HEAD、tree、worktree 和 index 均未变化。

@wlvh

wlvh commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

SEC_metrics Case A round 1 原始记录

  • 最终判定:PASS
  • 判定范围:workflow-docs-sync Case A round 1 候选文档同步通过;不表示 live 00–11、full validation、vNext Cutover 或生产发布通过。
  • review mode:independent reviewer
  • target:/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target
  • target HEAD:00c49b119431ad7201c51e573fbf2f353da3425e
  • candidate upstream:/Users/lyuhongwang/Desktop/coding workflow
  • candidate upstream SHA:2b4645119877272296f0d9cd15a905695c33c5b6
  • language:zh
  • 记录冻结时间:2026-08-02T04:23:58Z
  • 写入边界:唯一目标仓库写入者为 Case A round 1 主执行者;未安装依赖,未改真实 SEC 配置,未 stage、commit、push。

1. Exact prompt(逐字回显)

你是 fresh-context、blind-first 的 SEC_metrics Case A round 1 主执行者,并且是此隔离目标 worktree 的唯一写入者。固定身份:candidate upstream 根 `/Users/lyuhongwang/Desktop/coding workflow`,candidate SHA `2b4645119877272296f0d9cd15a905695c33c5b6`;隔离 target 根 `/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target`,expected target SHA `00c49b119431ad7201c51e573fbf2f353da3425e`;language `zh`。禁止读取 PR #18 body/comments、旧 Case A 记录、任何历史 eval 临时目录或其他会话结论;只从这两个仓库的当前 bytes、Git object、配置、测试和 committed artifacts 独立重建事实。

完整执行 canonical `workflow-docs-sync` 的 Case A round 1:先读 target 根 AGENTS.md,并按其 review 路径完整读取 SOP.md、architecture.md、capability_contract.json、interact.md、TESTING.md、PR_Checklist.md、docs/business_user_guide.md,以及 vNext recorded-shadow 所指向的 Requirement/Decision/SU 资料;执行公开 `prepare` 并固定其原始 JSON 身份。全量质疑九份文档,只修改事实要求的最小内容,其他文件保持零 diff。必须专门核对 stage 10/11/12 的输入、写入副作用、容错参数和 hard failure;主动寻找部分过时旧文档、跨文档共同虚构能力、把 light/golden/repair validation 写成 full validation的膨胀,以及没有当前证据的生产调度声明。

测试必须按 TESTING.md 的真实命令与当前风险选择,不能用定向回归代替完整 eval。至少包含:capability JSON parse;`git diff --check`;能力 alignment(含当前工作树状态的真实结果);provenance 专项;stage 10/11/12 相关定向测试;默认解释器全仓快速回归;Python 3.9 全仓快速回归;默认解释器与 Python 3.9 的 tests/vnext 完整 recorded tests。可能联网或覆盖真实 evidence/output 的 live 00–11、Golden、report build、Cutover/rollback/full validation 不得在条件未满足时冒险运行,逐项记录 NOT_RUN 原因。不要修改真实 SEC 配置,不要安装依赖,不要 commit/stage/push。

在形成自己的初始高风险事实与候选 diff 后,若平台槽位允许,显式创建一个 fresh-context、blind-first、只读 independent reviewer;reviewer 必须先独立重建高风险事实,再看候选九文件和 diff,并复核最小性、遗漏及跨文档影响。若槽位不可用,诚实标记 self-review。修复所有 BLOCKER/actionable WARN 后,运行公开 `check`(全部必填参数)并保留原始单行 JSON。

返回一份可直接发布为 GitHub raw record 的中文原始记录。必须逐字回显本 exact prompt;记录 candidate/target/language、review mode、prepare/check 原始 JSON、全部 exact commands、解释器/环境/return code/耗时/关键计数、起止九文件逐项 SHA-256、明确的整体 digest 算法和值、files changed、完整 `git diff --binary` 与其 SHA-256、findings/修复/复核、四项专项检查结论、未运行项/open decisions/剩余风险,以及最终 PASS/FAIL。离开 target worktree 与九文件候选 diff 原样供 round 2 使用。

2. 身份、禁读边界与范围

2.1 Git 身份

$ git -C '/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target' rev-parse HEAD
00c49b119431ad7201c51e573fbf2f353da3425e

$ git -C '/Users/lyuhongwang/Desktop/coding workflow' rev-parse HEAD
2b4645119877272296f0d9cd15a905695c33c5b6

结束时两项身份未漂移。

2.2 禁读与执行边界

  • 未读取 PR Simplify workflow docs sync around direct risk coverage #18 body/comments。
  • 未读取旧 Case A 记录、历史 eval 临时目录或其他会话结论。
  • 未使用历史 memory 作为事实来源。
  • 未 clone 额外仓库。
  • 未执行 stage 00–12 的真实写入型入口。
  • 未执行会覆盖 evidence/outputs/README_RUN.md 或报告的真实 gate。
  • 未改 config/sec_config.json;其当前联系邮箱仍为示例值 test@example.com
  • 未安装依赖,未 stage、commit、push。

2.3 已完整读取的权威材料

九份候选文件:

  1. architecture.md
  2. capability_contract.json
  3. interact.md
  4. docs/business_user_guide.md
  5. TESTING.md
  6. PR_Checklist.md
  7. SOP.md
  8. AGENTS.md
  9. .github/pull_request_template.md

同时读取:

  • requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
  • requirements/ai_first_v3_3_1/decision_register.json
  • requirements/ai_first_v3_3_1/FSD.md
  • requirements/ai_first_v3_3_1/ISSUE_CONTRACT.md
  • requirements/ai_first_v3_3_1/baseline_manifest.json
  • requirements/ai_first_v3_3_1/legacy_path_inventory.json
  • active stage wrappers、scripts/sec_pipeline.pyscripts/sec_http.pyscripts/validation_provenance.py
  • 相关 tests、config、committed manifests、provenance sidecar 与 acceptance receipts

git ls-files -z 得到 tracked file count 1187。写入前 target 干净;写入后仅九文件 allowlist 中的三份文件有 unstaged diff。

3. Public prepare

Exact command:

/usr/bin/time -p python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh
  • return code:0
  • /usr/bin/time -preal 0.23user 0.11sys 0.10
  • installed:0
  • existing:9

原始 stdout 单行 JSON:

{"status":"prepared","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}

4. 独立事实重建

4.1 当前能力与证据状态

  • 当前 active root 仍为 00–12;scripts/vnext/、catalog 与 publication primitives 属于 recorded/shadow,尚无 committed artifacts/vnext/active_publication.json
  • requirements/ai_first_v3_3_1/decision_register.json 中 D-01 为 PENDING_EXTERNAL_APPROVAL,effect 为 REMOTE_MODEL_DISABLED_AND_LIVE_CUTOVER_BLOCKED
  • config/sec_config.json 使用 test@example.com,不满足 live SEC identity 前提。
  • 最新已提交 full acceptance receipt 为 outputs/acceptance_receipts/3cade002f2710b84684aef1755f01679104552a291a2bcd8eead993abfc3cba6.json,状态 BLOCKED;这不是本轮新运行证据。
  • 已提交 outputs/validation_run_manifest.jsonsource_commit673cccc04ada3bfb215fcf4ffba68bf5469df7e4+dirty;provenance sidecar 绑定 673cccc04ada3bfb215fcf4ffba68bf5469df7e4,均不是 target HEAD 00c49b... 的新验收证明。
  • 仓库没有 GitHub Actions workflow、Databricks bundle/job 配置、API 或 UI 实现;现有相关长篇文档是方案、交接或历史说明,不能证明已部署生产调度。

4.2 Stage 10/11/12 专项核对

Stage 输入与网络 写入副作用 容差来源 hard failure / 退出语义
10 Golden public wrapper 无受支持的业务/容错参数。full 读取 registry、resolution、metrics、concept inventory、tracked Golden fixture;G2 通过 SecHttpClient 访问 SEC companyconcept。light 不联网 full 追加 request ledger/manifest、immutable body/header attempts,覆盖 outputs/golden_results.csvoutputs/golden_candidates.csv;light 只读 snapshot integrity tests/fixtures/sec_10_company_spike/golden_expected_values.csv 逐行给出 exact00.010.0000000001;不是 CLI override 缺输入、workspace incomplete、远端/持久化失败或 assertion FAIL 均非零;light 不能记为 full
11 report/build + bounded repair public wrapper 无受支持参数。读取 config、现有 evidence/outputs 与 Golden fixture。primarily local;C04 有序本地 AuditorName 候选仍缺时可能最小 fetch SEC wrapper 先失效旧 provenance;stage 发布 IN_PROGRESS manifest,执行 locator migration、repair,重写 metrics/evidence/governance、repair-sensitive Golden rows、coverage/crosscheck/exceptions/audits、manifest、报告与 README_RUN.md,可能追加 request evidence legacy lodging identity 使用相对误差阈值 0.05(5%);RevPAR/occupancy range 来自 config;B03 crosscheck 使用相对误差 0.01(1%);anchor 使用 absolute Decimal tolerance 0.0000000001 migration、request、persistence、report exception 非零;validation blocker 可生成 NO-GO 但 wrapper 仍可能退出 0,因此 exit 0 不等于 full success;Stage 11 不发布成功 provenance
12 terminal validation/provenance public wrapper 无受支持参数。离线读取 clean source-input tree 与现有 full/light artifacts 先失效旧 sidecar;重建 implementation/spec/stratified/scalability/repair validation、report、manifest;terminal gate 成功后才发布并回读 provenance 使用现行 legacy validation/config/code 阈值;vNext lodging 1% recorded contract 不反向改写 active legacy dirty source 在主 gate 前拒绝;workspace incomplete、full 中 NOT_EVALUATED、validation blocker、写入或 postflight mismatch 均非零;postflight 异常尝试将 manifest/report 降为 FAILED/NO-GO

4.3 四项专项检查结论

  1. 部分过时旧文档:存在,已修。
    SEC_metrics_项目全景与专家指南.mdSEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.mdSEC_metrics_Raw_Data_后端交接简版_v1.0.mdSEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.mdDatabricks生产化方案_产品与前端沟通版.* 均为 tracked 历史说明、方案或交接材料,却未在维护入口集中降权。已在 AGENTS.md 一行标明它们不在当前 runtime/acceptance source closure 内,其 Databricks Job、数据库、API、前端或调度描述不证明实现、部署或启用。

  2. 跨文档共同虚构能力:核心九文件未发现。
    architecture.mdcapability_contract.jsoninteract.md 与业务指南已一致否认当前 API/UI/database/daily scheduler/已切流 vNext。风险来自核心九文件之外的方案材料被误当现行事实,已由 AGENTS 维护地图收口;无需在其余七份候选文件复制相同声明。

  3. 把 light/Golden/repair/recorded 膨胀为 full:核心九文件未发现,但 Stage 边界不够集中,已修。
    原文已区分 LIGHT_REVIEW_MODEPASSED_WITH_CAVEATSPASSED_RECORDED_ONLY 与 full。新增最小事实集中说明 Stage 10 light 只读、Stage 11 exit 0 不是验收、Stage 12 写入且 fail closed,并明确 legacy 与 vNext 容差不互相覆盖。

  4. 无当前证据的生产调度声明:核心九文件没有;旧方案材料有误读风险,已修。
    仓库无 workflow、Databricks job bundle、API/UI runtime,architecture.mdinteract.md 已明确不是 daily scheduler。未新增虚构部署结论,只在 AGENTS.md 降权旧材料。

5. Findings、修复与复核

ID 来源 Severity Finding 修复 最终状态
A-R1-F01 主执行者 WARN 多份旧 Databricks/数据库/交接材料未在维护地图显式降权 AGENTS.md 增加一行非权威/未部署边界 CLOSED
A-R1-F02 主执行者 WARN TESTING.md 没有集中记录 Stage 10–12 的公共参数、确切阈值、写入和 hard-failure 边界 把独有事实并入既有 7.2/7.3/7.4,避免第二套总括段 CLOSED
A-R1-REV-B01 independent reviewer BLOCKER 初稿把 lodging 0.05 与 B03 0.01 relative error 错写为 absolute error 改为 relative error 5%/1%;仅 anchor 保留 absolute Decimal tolerance 1e-10 CLOSED
A-R1-REV-W01 independent reviewer WARN 初稿误写 Stage 11 读取 catalog 删除 catalog CLOSED
A-R1-REV-W02 independent reviewer WARN 初稿新总括段重复现有 7.2–7.5,形成双维护面 删除总括段,独有事实归入原小节 CLOSED
A-R1-REV-W03 independent reviewer WARN 修订稿又把 Stage 11 输入误写为“业务文档” 精确改为 config、现有 evidence/outputs 与 Golden fixture CLOSED
A-R1-PARENT-W01 blind review 冻结后父级 finding,主执行者独立核验 WARN architecture.md 泛称“输入包括三份配置”,遗漏 active Stage 12 实际读取 config/validation_source_policy.json 一行改为“现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy”;确认 vnext_release_plan.json 不在 active 00–12 调用链 CLOSED

5.1 父级 finding 的独立验证证据

  • scripts/sec_pipeline.py 定义并读取:
    • config/sec_config.json
    • config/company_registry.csv
    • config/metric_applicability.yaml
  • scripts/12_validate_repair.py 在 main gate 前调用 capture_source_snapshot(workdir=WORKDIR)
  • scripts/validation_provenance.py::capture_source_snapshot 调用 load_source_policy,固定读取 config/validation_source_policy.json
  • 对 active 00–12 入口与上述模块搜索,config/vnext_release_plan.json 无命中。

结论:原“三份配置”若描述完整 00–12 输入则不完整;一行修正属实且最小。

6. Independent review

  • review mode:independent reviewer
  • reviewer:fresh-context、blind-first、只读
  • reviewer 未写文件,未运行写入型 stage/gate。
  • Phase 1:在打开候选九文件和 diff 前,先从代码、config、tests 与 committed artifacts 重建 Stage 10/11/12、full/light/recorded、生产部署与旧证据边界;结论先冻结并发回。
  • Phase 2:之后才读取九文件与 git diff --binary,检查准确性、最小性、遗漏与跨文档影响。
  • 初审:REQUEST_CHANGES,提出 1 BLOCKER + 2 WARN。
  • 第一次复核:原问题关闭,但发现“业务文档”同类新 WARN。
  • 最终复核:全部 findings CLOSED;APPROVE;无新 BLOCKER/actionable WARN。
  • reviewer 最终确认:diff 仅 AGENTS.mdTESTING.mdarchitecture.md;九文件外零 diff、零 untracked;其余六份候选无需同步。

7. 文件修改范围

$ git diff --numstat
1	0	AGENTS.md
6	4	TESTING.md
1	1	architecture.md

$ git diff --shortstat
 3 files changed, 8 insertions(+), 5 deletions(-)

修改:

  • AGENTS.md:降权旧方案/交接材料,阻止其被当成当前生产能力证据。
  • TESTING.md:补齐 Stage 10/11/12 参数、输入、写入、容差、network 与 hard-failure 事实。
  • architecture.md:把 active 00–11 的三份业务/SEC config 与 Stage 12 validation source policy 分开陈述。

零 diff:

  • capability_contract.json
  • interact.md
  • docs/business_user_guide.md
  • PR_Checklist.md
  • SOP.md
  • .github/pull_request_template.md

候选九文件外零 diff;无 staged file;无 untracked file。

8. 测试环境

OS: macOS 26.4 (Build 25E246)
Kernel: Darwin 25.4.0 arm64
cwd: /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target
default python: /opt/homebrew/bin/python3
default version: Python 3.14.3
python3.9: /Users/lyuhongwang/opt/anaconda3/bin/python3.9
python3.9 version: Python 3.9.12
git: git version 2.39.5 (Apple Git-154)
LANG: C.UTF-8
LC_ALL: C.UTF-8

四组完整 unittest 在同一隔离 target 中并行启动;每个进程只使用 tests 的 tempfile/temp Git 路径,PYTHONDONTWRITEBYTECODE=1,无网络,无仓库预期写入。各命令的 /usr/bin/time 独立计时。

9. Exact validation/test commands 与结果

9.1 Capability JSON parse

/usr/bin/time -p python3 -m json.tool capability_contract.json >/dev/null

最终:RC 0real 0.02user 0.02sys 0.00;JSON object 合法。

9.2 Whitespace/diff gate

/usr/bin/time -p git diff --check

最终:RC 0real 0.01user 0.00sys 0.00;无输出。

9.3 Capability alignment(当前工作树真实结果)

/usr/bin/time -p python3 tools/check_capability_contract_alignment.py
时点 RC real 结果
修改前 baseline 0 1.52s structural alignment PASS
初始候选 1 1.67s AGENTS.mdTESTING.md 与 HEAD 不同
reviewer 第一轮修复后 1 1.69s AGENTS.mdTESTING.md 与 HEAD 不同
最终候选 1 1.63s AGENTS.mdTESTING.mdarchitecture.md 与 HEAD 不同

最终原始关键输出:

Capability contract alignment failed:
- clean-clone evidence differs from HEAD: AGENTS.md
- clean-clone evidence differs from HEAD: TESTING.md
- clean-clone evidence differs from HEAD: architecture.md

这是 checker 对未提交 evidence bytes 的预期 fail-closed 结果。任务明确禁止 commit/stage,并要求保留候选 diff,因此不能把它改写成 PASS;它不是 JSON/anchor 语义失败。最终 public sync_docs.py check 对允许的未提交九文件候选另行通过。

9.4 Provenance 专项

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest tests.test_validation_provenance tests.test_validation_provenance_light_package
时点 RC tests unittest duration real/user/sys
初始候选 0 22 3.710s 3.81 / 1.58 / 1.85s
reviewer 第一轮修复后 0 22 3.740s 3.80 / 1.61 / 1.82s
最终候选 0 22 3.633s 3.69 / 1.57 / 1.75s

最终:Ran 22 tests ... OK;无 reported skip。

9.5 Stage 10/11/12 定向回归

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_validation_provenance.ValidationProvenanceTest.test_stage_invalidation_removes_only_regular_provenance tests.test_validation_provenance.ValidationProvenanceTest.test_stage12_wrapper_downgrades_on_unexpected_postflight_error tests.test_validation_provenance.ValidationProvenanceTest.test_report_provenance_notice_is_idempotent tests.test_validation_provenance.ValidationProvenanceTest.test_readme_routes_are_idempotent

覆盖:Stage 10 full/light Golden exact-set/tamper/workspace mode;Stage 11 manifest/README/report/repair failure;Stage 12 report/manifest publication、symlink/write failure、postflight fail-closed;stage invalidation 与 notice idempotency。

时点 RC tests unittest duration real/user/sys
初始候选 0 21 0.065s 0.29 / 0.20 / 0.05s
reviewer 第一轮修复后 0 21 0.066s 0.26 / 0.20 / 0.05s
最终候选 0 21 0.064s 0.25 / 0.20 / 0.05s

最终:Ran 21 tests ... OK;无 reported skip。

9.6 默认解释器全仓快速回归

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -t . -p 'test_*.py'
  • Python:/opt/homebrew/bin/python33.14.3
  • RC:0
  • count:365 tests
  • unittest duration:183.140s
  • /usr/bin/timereal 183.42user 126.03sys 54.82
  • result:OK
  • reported skip:0

9.7 Python 3.9 全仓快速回归

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
  • Python:/Users/lyuhongwang/opt/anaconda3/bin/python3.93.9.12
  • RC:0
  • count:365 tests
  • unittest duration:254.725s
  • /usr/bin/timereal 255.03user 183.51sys 65.79
  • result:OK
  • reported skip:0

9.8 默认解释器 tests/vnext 完整 recorded tests

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • Python:3.14.3
  • RC:0
  • count:174 tests
  • unittest duration:170.895s
  • /usr/bin/timereal 171.15user 120.22sys 50.23
  • result:OK
  • reported skip:0

9.9 Python 3.9 tests/vnext 完整 recorded tests

/usr/bin/time -p env PYTHONDONTWRITEBYTECODE=1 python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
  • Python:3.9.12
  • RC:0
  • count:174 tests
  • unittest duration:230.777s
  • /usr/bin/timereal 231.04user 173.68sys 54.28
  • result:OK
  • reported skip:0

9.10 结果解释

  • 定向回归没有替代完整 eval;完整默认/3.9 全仓回归与两套完整 vNext recorded tests 均真实运行。
  • alignment RC 1 被保留为“未提交候选与 HEAD 不同”的真实结果,没有用 JSON parse 或 public check 冒充它。
  • 完整回归之后发生的修订只触及三份 Markdown 事实文本;reviewer 修复后已重跑直接受影响的 provenance 22 项、Stage 10/11/12 定向 21 项、JSON、diff 与 alignment。

10. NOT_RUN

以下命令未执行,均未被写成 PASS:

项目 Exact command / 入口 状态 原因
live Stage 00 python3 scripts/00_smoke_test_sec_access.py NOT_RUN test@example.com 不是有效 SEC identity;会联网并写 request evidence
live Stage 01 python3 scripts/01_resolve_companies.py NOT_RUN live 00–11 前提未满足;会写真实输出
live Stage 02 python3 scripts/02_inventory_filings.py NOT_RUN live 00–11 前提未满足;可能联网并写真实 evidence/output
live Stage 03 python3 scripts/03_companyfacts_inventory.py NOT_RUN live 00–11 前提未满足;可能联网并写真实 evidence/output
live Stage 04 python3 scripts/04_compute_standard_metrics.py NOT_RUN 会覆盖真实 metrics/output;本轮是 docs-only eval
live Stage 05 python3 scripts/05_fetch_accession_materials.py NOT_RUN 会联网并写 accession evidence
live Stage 06 python3 scripts/06_parse_xbrl_instances.py NOT_RUN 会覆盖真实 parsed outputs
live Stage 07 python3 scripts/07_extract_8k_events.py NOT_RUN 会读取/可能补取 live material 并覆盖 outputs
live Stage 08 python3 scripts/08_extract_def14a.py NOT_RUN 会读取/可能补取 live material 并覆盖 outputs
live Stage 09 python3 scripts/09_extract_mda_and_risk_text.py NOT_RUN 会读取/可能补取 live material 并覆盖 outputs
Golden / Stage 10 python3 scripts/10_run_golden_assertions.py NOT_RUN current full shape 会访问 SEC companyconcept、追加 request evidence、覆盖两份 Golden;身份无效
report build / Stage 11 python3 scripts/11_build_report.py NOT_RUN 会先失效 provenance,大量覆盖 outputs/report/README,C04 还可能条件联网
repair/full validation / Stage 12 python3 scripts/12_validate_repair.py NOT_RUN 候选三份 source inputs 按要求保持 dirty,主 gate 前会拒绝;命令仍会失效 sidecar/写 validation outputs
snapshot checker python3 tools/check_validation_snapshot.py NOT_RUN 本轮未生成新的 Stage 12 snapshot;已提交 sidecar 绑定旧 source commit,且当前候选 source dirty
recorded acceptance runner PYTHONDONTWRITEBYTECODE=1 python3 tools/run_acceptance.py --scope recorded NOT_RUN 会写 acceptance receipt、semantic/scalability outputs;完整 recorded tests 已按要求直接运行,不用写型 runner 代替
full acceptance runner PYTHONDONTWRITEBYTECODE=1 python3 tools/run_acceptance.py --scope full NOT_RUN D-01、有效 SEC identity 与 clean committed source closure 均不满足;会写 receipt 并执行 Stage 12
remote live Reader 三轮 当前没有已登记 live provider CLI NOT_RUN D-01 external approval pending;remote model disabled
Cutover 当前未启用 active publication pointer 的 operator run NOT_RUN 无全十家公司 staging parity、live 三轮、有效 D-01 与 clean full acceptance
rollback→report→checker→restore 当前未启用的 publication operator scenario NOT_RUN 无合法 current/previous committed bundle 与 active Cutover 前提;不得虚构演练

11. Open decisions 与剩余风险

11.1 Open decisions

  • D-01 尚待 HUMAN external approval:provider、model、endpoint、region、retention、data use、timeout、retry、maximum payload、filing egress policy 均未关闭。
  • 有效 SEC organization/contact identity 尚未配置;test@example.com 只能阻塞 live。
  • vNext 尚缺第二个真实 lodging filing、实现冻结后的独立 holdout、remote live 三轮、全十家公司 staging parity。
  • active root 仍由 legacy 00–12 生产;vNext 尚未 Cutover,也没有真实 rollback→report→snapshot-checker→restore 证据。

11.2 剩余风险

  • 三份候选文档尚未提交;clean-clone capability alignment 必须在后续 commit 后重跑,当前 RC 1 是预期但仍是未关闭的发布前证据。
  • 本轮没有重建 live evidence、Golden、报告或 full snapshot;不能把 unit/recorded PASS 外推为 full acceptance。
  • 旧方案文件的内容没有在本轮重写,只在维护入口明确降权;后续若要继续保留,应考虑在 source policy 或文件自身加入更醒目的 status marker,但这超出本次最小九文件同步。
  • 当前 committed manifest/provenance/acceptance receipt 均是历史 evidence,不是本轮 candidate HEAD 的新 full receipt。

12. Public final check

Exact command:

/usr/bin/time -p python3 '/Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py' check --target-repo '/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target' --upstream-dir '/Users/lyuhongwang/Desktop/coding workflow' --upstream-sha '2b4645119877272296f0d9cd15a905695c33c5b6' --expected-target-head '00c49b119431ad7201c51e573fbf2f353da3425e' --language 'zh'
  • RC:0
  • /usr/bin/timereal 0.32user 0.15sys 0.13

原始 stdout 单行 JSON:

{"status":"passed","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","files_checked":9,"dirty_paths":["AGENTS.md","TESTING.md","architecture.md"]}

该 check 只证明:固定 upstream object、target HEAD、dirty allowlist、index/worktree 分叉约束、九份普通 UTF-8 非空文件、JSON object、active marker 与固定 whitespace 规则通过。它不证明文案语义、调查历史、测试层级或 full acceptance;这些由本记录中的事实重建、真实测试和 independent review 分别提供。

13. 九文件起止 SHA-256

文件 起始 SHA-256(HEAD bytes) 最终 SHA-256(worktree bytes) 状态
architecture.md e7e04b38917ba00cb9833cdf5f41580b5a226cbacc5f1a8ba0ba50911957e002 50868a3b8d3f2122336bb15bf14d337d9149d1994f12b79c2c36dc996183cd8e changed
capability_contract.json 977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8 977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8 unchanged
interact.md 4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326 4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326 unchanged
docs/business_user_guide.md cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81 cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81 unchanged
TESTING.md f9de0d7bbda5d645ebf2ceffddbeb2f58ebf7070934c7a2fd01c378797c8d994 d10297957ab74bd476faf117b02f39493dbcde78bb41a52d4e1bcbde0288650c changed
PR_Checklist.md b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8 b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8 unchanged
SOP.md 0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e 0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e unchanged
AGENTS.md 8d0f05d38fc4967823e5b70c3ae78c214ceebd041083a68656b49d2d06de512c 0f7597110495c824b811345825262d4498a4d966404c74ba0364be294f846190 changed
.github/pull_request_template.md 37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4 37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4 unchanged

13.1 整体 digest 算法

固定文件顺序:

  1. architecture.md
  2. capability_contract.json
  3. interact.md
  4. docs/business_user_guide.md
  5. TESTING.md
  6. PR_Checklist.md
  7. SOP.md
  8. AGENTS.md
  9. .github/pull_request_template.md

对每个文件先计算 raw bytes 的 lowercase SHA-256 hex,然后按固定顺序拼接:

UTF8(relative_path) || 0x00 || ASCII(lowercase_file_sha256_hex) || 0x0A

整体 digest 为上述九段连接字节流的 SHA-256。

  • initial overall digest:aa6b370281f0137bb63ad3a12472817446745f6873b709db14f9949e3ad20aaa
  • final overall digest:8c91c4a470a09c6be343a15876a97e6c64b8352bc5b058d236cdc08b0f877a9e

14. Git diff identity

  • exact source:git diff --binary stdout raw bytes
  • byte count:11747
  • SHA-256:0f0ad9124fe32174874b2eccac7c118aa84ca3bf98a4076ab06f3445e3bd0bb3

Exact hash command:

git diff --binary | shasum -a 256

15. 完整 git diff --binary

diff --git a/AGENTS.md b/AGENTS.md
index 27f21c2..ca741a1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,6 +106,7 @@ requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
 - `01_SOP_SEC_10公司单年指标计算_直接SEC.md`:当前运行路径中的业务方法输入,属于 acceptance source;其中 M0–M7 是概念阶段,不是当前 `scripts/00_*`–`12_*` 的物理顺序,实际运行以 `README_RUN.md` 为准。
 - `02_指标定义_SEC_10公司单年指标.md`:指标定义、候选链、公式、适用性与降级语义。
 - `SEC_metrics_Project_Overview_and_Expert_Guide.md`:解释性非权威文档;其中历史数量或历史验收结论不是当前状态源,也不得作为 SOP 运行权威。
+- `SEC_metrics_项目全景与专家指南.md`、`SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md`、`SEC_metrics_Raw_Data_后端交接简版_v1.0.md`、`SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md` 与 `Databricks生产化方案_产品与前端沟通版.*`:历史说明、方案或交接材料,不在当前 runtime/acceptance source closure 内;其中 Databricks Job、数据库、API、前端或生产调度描述不证明本仓库已实现、部署或启用对应能力。
 - `README_RUN.md`:完整阶段顺序、验收入口、主要输出和 light review 说明。
 - `CIK变更应对方案.md`:CIK、successor/predecessor 与实体连续性规则,属于 acceptance source。
 - `evidence/requests_log.csv`:按 request attempt 记录的请求 ledger。
diff --git a/TESTING.md b/TESTING.md
index 27d6c0d..b9062ac 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -164,20 +164,22 @@ fixture 可以包含公司身份;生产 `scripts/` 与 `tools/` 不得用公
 
 ### 7.2 Golden
 
-full 模式会通过 G2 访问 SEC companyconcept,可能更新 `evidence/requests_log.csv` 和 raw response,并覆盖:
+公开 `scripts/10_*` wrapper 没有受支持的业务参数或容错参数,不能把额外 argv 当成配置接口。full 模式读取 registry、resolution、metrics、concept inventory,并通过 G2 访问 SEC companyconcept;数值/字符串期望和容差逐行来自已跟踪的 `tests/fixtures/sec_10_company_spike/golden_expected_values.csv`(当前只包含 `exact`、`0`、`0.01` 和 `0.0000000001`)。该模式可能更新 request ledger/manifest、immutable response attempts,并覆盖:
 
 - `outputs/golden_results.csv`
 - `outputs/golden_candidates.csv`
 
-light 模式只做随包 snapshot integrity,不能被记录成 full Golden 重算。
+light 模式只做随包 snapshot integrity,不联网、不重算、不写上述 Golden 输出,也不能被记录成 full Golden 重算。输入缺失、远端/持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。
 
 ### 7.3 Repair gate
 
-阶段 12 在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查。
+公开 `scripts/12_*` wrapper 没有受支持的业务参数或容错参数。阶段 12 离线读取当前 source-input tree 与现有 full/light artifacts,并在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查;workspace incomplete、full 中 `NOT_EVALUATED_MISSING_EVIDENCE`、validation blocker、dirty source、写入失败或 postflight 失配都必须非零退出。
+
+现行 legacy repair 阈值不是 Stage 10 fixture,也不是可调 CLI 参数:lodging identity relative error 阈值为代码固定 `0.05`(5%),RevPAR/occupancy 合理范围来自 config,B03 crosscheck relative error 阈值为代码固定 `0.01`(1%),anchor comparison 使用代码固定 absolute Decimal tolerance `0.0000000001`。vNext FSD 的 lodging `1%` 只属于尚未切流的 recorded shadow 契约,不能反向改写现行 00–12 阈值。
 
 ### 7.4 Report build
 
-阶段 11 会先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12。
+公开 `scripts/11_*` wrapper 没有受支持的业务参数或容错参数。阶段 11 读取 config、现有 evidence/outputs 与 Golden fixture,先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,重写 metrics/evidence/governance、Golden repair-sensitive rows,并生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12;validation blocker 可形成 NO-GO 产物而 wrapper 仍退出 0,迁移、请求、持久化或报告生成异常必须非零退出,且 Stage 11 不发布成功 provenance。
 
 ### 7.5 Validation snapshot provenance
 
diff --git a/architecture.md b/architecture.md
index 0fab599..9c3e84e 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
 

16. 最终工作树证明

$ git status --porcelain=v1
 M AGENTS.md
 M TESTING.md
 M architecture.md

$ git diff --cached --name-only

$ git ls-files --others --exclude-standard
  • target HEAD:00c49b119431ad7201c51e573fbf2f353da3425e
  • staged:0
  • untracked:0
  • unstaged candidate files:3
  • 九文件均为 regular non-symlink files。
  • 完整候选 diff 留在 target worktree,未提交、未清理,供 round 2 使用。

17. 最终判定

PASS

成立条件:

  1. candidate/target/language 身份固定且 public prepare/check 均通过;
  2. 九文件全量调查,只有三个事实缺口产生最小 diff;
  3. 全部完整双解释器 eval 与 vNext recorded tests 通过;
  4. provenance 与 Stage 10/11/12 定向回归在最终修复后通过;
  5. independent reviewer 最终 APPROVE,无 open BLOCKER/actionable WARN;
  6. final diff/hash/status 已冻结,候选外零 diff、零 staged、零 untracked。

明确不包含在本 PASS 中:

  • 当前工作树 clean-clone capability alignment;
  • live 00–11;
  • Golden full 重算;
  • report build;
  • Stage 12/full acceptance;
  • remote AI live;
  • staging/Cutover/rollback;
  • 生产部署或调度。

@wlvh

wlvh commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

SEC_metrics Case A round 2:Workflow Docs Sync 独立复核记录

最终结论:PASS(round 2 有一处基于新事实的最小文案修复,因此不是 no-op)

  • 初始候选只改动 AGENTS.mdTESTING.mdarchitecture.md,其余六份必需文件未改。
  • blind-first 调查与独立 reviewer 都确认大部分候选事实准确、边界清楚、改动最小。
  • 独立 reviewer 在初始 bytes 上发现 1 个 BLOCKER:TESTING.md 将任意 Stage 10 远端失败写成必然非零,但 production 当前并非如此。
  • 本轮只收窄该句文案;没有修改 production、测试、配置、evidence 或 outputs。
  • 修后 reviewer APPROVE,公开 check 通过;无未解决 BLOCKER/actionable WARN。
  • 未运行会联网或覆盖真实 evidence/outputs 的命令;未安装依赖,未修改 SEC 配置,未 stage/commit/push。

1. Exact prompt 回显

以下代码块内部逐字回显本轮 exact prompt;prompt receipt 本身另存于仓库外文件。

你是 fresh-context 的 SEC_metrics Case A round 2 主执行者,并从现在起是隔离 target worktree 的唯一写入者。固定身份:candidate upstream 根 `/Users/lyuhongwang/Desktop/coding workflow`,candidate SHA `2b4645119877272296f0d9cd15a905695c33c5b6`;target 根 `/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target`,expected target HEAD `00c49b119431ad7201c51e573fbf2f353da3425e`;language `zh`。当前 target 含一组尚未提交的九文件候选 diff,你必须把它当作待独立验证的输入,不得假定 round 1 正确。

在读取任一仓库文件前,先把本消息从“你是 fresh-context”到末尾逐字保存到仓库外 `/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/case_a_round2_prompt.txt`,并记录原始 UTF-8 bytes、SHA-256 和行数。禁止读取 `/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/case_a_round1_raw.md`、`case_g_raw.md`、PR #18 body/comments、任何旧 Case A/eval 记录或其他会话结论;不得向 round 1 执行者询问。只从 candidate/target 当前 bytes、Git object、代码、配置、测试和 committed artifacts 独立重建事实。

完整重新执行 canonical `workflow-docs-sync` Case A,而不是第二次 prepare/check:先记录起始 HEAD、status、九文件逐项 SHA-256、完整 `git diff --binary` 与 digest;读 target 根 AGENTS.md,并按其 review 路径完整读取 SOP.md、architecture.md、capability_contract.json、interact.md、TESTING.md、PR_Checklist.md、docs/business_user_guide.md 和 vNext Requirement/Decision/SU 资料;运行公开 prepare 并固定原始 JSON。重新调查 stage 10/11/12 的输入、写入副作用、业务/容错参数和 hard failure;重新主动寻找部分过时旧文档、跨文档共同虚构能力、把 light/golden/repair 写成 full validation 的膨胀,以及无证据的生产调度声明。全量质疑九文件;预期是 no-op,但只有当前事实要求时才可最小改写,并必须给出新证据。

测试必须从 TESTING.md 独立选择且不能用定向回归代替完整 eval。至少形成这些真实证据:capability JSON parse、`git diff --check`、当前工作树下的 capability alignment 真实结果、provenance 专项、stage 10/11/12 相关定向测试、默认解释器全仓快速回归、Python 3.9 全仓快速回归、默认解释器与 Python 3.9 的 tests/vnext 完整 recorded tests。可能联网或覆盖真实 evidence/output 的 live 00–11、Golden、report build、Cutover/rollback/full validation 在前提不满足时不得运行,逐项写 NOT_RUN 原因。不要修改 SEC 配置,不要安装依赖,不要 stage/commit/push。

在形成自己的 blind-first 高风险事实后,如平台槽位允许,创建 fresh-context、只读 independent reviewer:reviewer 先独立重建高风险事实,再读取当前九文件/diff,复核事实、最小性、遗漏和 round-2 no-op;若不可用,诚实标记 self-review。修复全部 BLOCKER/actionable WARN 后,用全部必填参数运行公开 check,保留原始单行 JSON;记录结束九文件 hashes、diff 与 digest,证明是否 no-op。

最终把可直接发布为 GitHub comment 的完整中文 raw record 用 apply_patch 保存到仓库外 `/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/case_a_round2_raw.md`,聊天只返回摘要和两个文件的 SHA-256/bytes/lines。raw record 必须逐字回显本 exact prompt,记录 candidate/target/language、review mode、prepare/check JSON、全部 exact commands、解释器/环境/return code/耗时/计数、起止九文件 hashes 与明确整体 digest 算法、起止完整 diff、findings/修复/复核、四项专项检查、未运行项/open decisions/剩余风险和最终 PASS/FAIL。

Prompt receipt:

  • Path:/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/case_a_round2_prompt.txt
  • UTF-8 bytes:3799
  • Lines(wc -l):11
  • SHA-256:3d5f399e2de8a694e10c9d4094555ca1ed93a8e2de031d2f6833c96a9c81151f
  • 时序:receipt 在读取任何 candidate/target 仓库文件前由 apply_patch 创建并随即冻结。
  • 隔离:本轮未读取被禁止的 round 1 raw、Case G raw、PR Simplify workflow docs sync around direct risk coverage #18 body/comments、旧 Case A/eval 记录或 memory,也未向 round 1 执行者询问。

2. 固定身份、环境与 review mode

  • Candidate upstream:/Users/lyuhongwang/Desktop/coding workflow
  • Candidate SHA:2b4645119877272296f0d9cd15a905695c33c5b6
  • Candidate 终态:worktree/index clean。
  • Target:/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target
  • Expected/actual target HEAD:00c49b119431ad7201c51e573fbf2f353da3425e
  • Target 状态:detached HEAD;起止均只修改 AGENTS.mdTESTING.mdarchitecture.md
  • Language:zh
  • OS:Darwin 25.4.0 arm64
  • Git:2.39.5 (Apple Git-154)
  • 默认解释器:/opt/homebrew/bin/python3,Python 3.14.3
  • Python 3.9:/Users/lyuhongwang/opt/anaconda3/bin/python3.9,Python 3.9.12
  • 测试环境:PYTHONDONTWRITEBYTECODE=1;未安装依赖。
  • Review mode:fresh-context、只读 independent reviewer;主执行者 blind-first 后才启动 reviewer。
  • Reviewer isolation:未读 PR、旧 raw、round 1 或 memory。
  • Protocol NOTE:reviewer 为遵守 target 仓库规则,phase 1 必须先读取根 AGENTS.md;因此不能声称对全部九文件“严格全盲”。除该规则入口外,reviewer 先从代码、配置、测试和 committed artifacts 重建事实,再读取候选 diff。
  • Reviewer 初始结论:REQUEST_CHANGES,1 个 BLOCKER A-R2-01
  • Reviewer 修后终审:APPROVE,无未解决 BLOCKER/actionable WARN。
  • Reviewer 两项非阻断 NOTE:未提交 source docs 使 alignment/snapshot 按设计 dirty;AGENTS.md 的规则入口限制如上。

3. Canonical skill 与公开 prepare/check

使用 candidate upstream 的 canonical skill:

  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/SKILL.md
  • /Users/lyuhongwang/Desktop/coding workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py
  • 已完整读取 skill 与实现。prepare 只补缺失文件;check 验证全部必填参数、candidate SHA、target HEAD、dirty allowlist、UTF-8/markers/content/whitespace。
  • Required files 恰为本记录的九文件顺序。

Prepare exact command:

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py prepare --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --language zh

结果:rc=0;tool wall=0.096954708s。原始单行 JSON:

{"status":"prepared","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_dir":"/Users/lyuhongwang/Desktop/coding workflow","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","installed":[],"existing":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"],"required_files":["architecture.md","capability_contract.json","interact.md","docs/business_user_guide.md","TESTING.md","PR_Checklist.md","SOP.md","AGENTS.md",".github/pull_request_template.md"]}

Prepare 未安装文件,未改变 target bytes。

Final check 在修复与独立终审后运行。Exact command:

python3 /Users/lyuhongwang/Desktop/coding\ workflow/zh/skills/workflow-docs-sync/scripts/sync_docs.py check --target-repo /private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target --upstream-dir /Users/lyuhongwang/Desktop/coding\ workflow --upstream-sha 2b4645119877272296f0d9cd15a905695c33c5b6 --expected-target-head 00c49b119431ad7201c51e573fbf2f353da3425e --language zh

结果:rc=0;tool wall=0.248234s。原始单行 JSON:

{"status":"passed","target_repo":"/private/tmp/coding-workflow-pr18-2b46451-eval.l2Kr6i/sec-metrics-target","target_head":"00c49b119431ad7201c51e573fbf2f353da3425e","upstream_sha":"2b4645119877272296f0d9cd15a905695c33c5b6","language":"zh","files_checked":9,"dirty_paths":["AGENTS.md","TESTING.md","architecture.md"]}

机械 check 只证明最终文件状态满足 skill 契约,不替代本记录的事实调查、review 或测试。

4. 起始快照

起始 HEAD:

00c49b119431ad7201c51e573fbf2f353da3425e

起始 status:

 M AGENTS.md
 M TESTING.md
 M architecture.md

4.1 九文件起始 hashes

整体 digest 算法:严格按下表顺序,对每个文件原始 bytes 计算 SHA-256;为每项生成 UTF-8 行 relative_path<TAB>file_sha256<LF>;将九行无额外前后缀拼接,再对拼接 bytes 计算 SHA-256。

# 文件 SHA-256 lines bytes
1 architecture.md 50868a3b8d3f2122336bb15bf14d337d9149d1994f12b79c2c36dc996183cd8e 339 56894
2 capability_contract.json 977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8 744 49298
3 interact.md 4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326 149 26170
4 docs/business_user_guide.md cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81 206 19099
5 TESTING.md d10297957ab74bd476faf117b02f39493dbcde78bb41a52d4e1bcbde0288650c 277 53305
6 PR_Checklist.md b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8 119 9129
7 SOP.md 0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e 67 7410
8 AGENTS.md 0f7597110495c824b811345825262d4498a4d966404c74ba0364be294f846190 195 16306
9 .github/pull_request_template.md 37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4 185 6268

起始九文件整体 digest:6a389ef8fdf9a44cdf00ef9a5abc3f5786069aa2209b9f25aed97e065d2d0c18

起始完整 git diff --binary digest:0f0ad9124fe32174874b2eccac7c118aa84ca3bf98a4076ab06f3445e3bd0bb3

4.2 起始完整 diff

diff --git a/AGENTS.md b/AGENTS.md
index 27f21c2..ca741a1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,6 +106,7 @@ requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
 - `01_SOP_SEC_10公司单年指标计算_直接SEC.md`:当前运行路径中的业务方法输入,属于 acceptance source;其中 M0–M7 是概念阶段,不是当前 `scripts/00_*`–`12_*` 的物理顺序,实际运行以 `README_RUN.md` 为准。
 - `02_指标定义_SEC_10公司单年指标.md`:指标定义、候选链、公式、适用性与降级语义。
 - `SEC_metrics_Project_Overview_and_Expert_Guide.md`:解释性非权威文档;其中历史数量或历史验收结论不是当前状态源,也不得作为 SOP 运行权威。
+- `SEC_metrics_项目全景与专家指南.md`、`SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md`、`SEC_metrics_Raw_Data_后端交接简版_v1.0.md`、`SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md` 与 `Databricks生产化方案_产品与前端沟通版.*`:历史说明、方案或交接材料,不在当前 runtime/acceptance source closure 内;其中 Databricks Job、数据库、API、前端或生产调度描述不证明本仓库已实现、部署或启用对应能力。
 - `README_RUN.md`:完整阶段顺序、验收入口、主要输出和 light review 说明。
 - `CIK变更应对方案.md`:CIK、successor/predecessor 与实体连续性规则,属于 acceptance source。
 - `evidence/requests_log.csv`:按 request attempt 记录的请求 ledger。
diff --git a/TESTING.md b/TESTING.md
index 27d6c0d..b9062ac 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -164,20 +164,22 @@ fixture 可以包含公司身份;生产 `scripts/` 与 `tools/` 不得用公
 
 ### 7.2 Golden
 
-full 模式会通过 G2 访问 SEC companyconcept,可能更新 `evidence/requests_log.csv` 和 raw response,并覆盖:
+公开 `scripts/10_*` wrapper 没有受支持的业务参数或容错参数,不能把额外 argv 当成配置接口。full 模式读取 registry、resolution、metrics、concept inventory,并通过 G2 访问 SEC companyconcept;数值/字符串期望和容差逐行来自已跟踪的 `tests/fixtures/sec_10_company_spike/golden_expected_values.csv`(当前只包含 `exact`、`0`、`0.01` 和 `0.0000000001`)。该模式可能更新 request ledger/manifest、immutable response attempts,并覆盖:
 
 - `outputs/golden_results.csv`
 - `outputs/golden_candidates.csv`
 
-light 模式只做随包 snapshot integrity,不能被记录成 full Golden 重算。
+light 模式只做随包 snapshot integrity,不联网、不重算、不写上述 Golden 输出,也不能被记录成 full Golden 重算。输入缺失、远端/持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。
 
 ### 7.3 Repair gate
 
-阶段 12 在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查。
+公开 `scripts/12_*` wrapper 没有受支持的业务参数或容错参数。阶段 12 离线读取当前 source-input tree 与现有 full/light artifacts,并在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查;workspace incomplete、full 中 `NOT_EVALUATED_MISSING_EVIDENCE`、validation blocker、dirty source、写入失败或 postflight 失配都必须非零退出。
+
+现行 legacy repair 阈值不是 Stage 10 fixture,也不是可调 CLI 参数:lodging identity relative error 阈值为代码固定 `0.05`(5%),RevPAR/occupancy 合理范围来自 config,B03 crosscheck relative error 阈值为代码固定 `0.01`(1%),anchor comparison 使用代码固定 absolute Decimal tolerance `0.0000000001`。vNext FSD 的 lodging `1%` 只属于尚未切流的 recorded shadow 契约,不能反向改写现行 00–12 阈值。
 
 ### 7.4 Report build
 
-阶段 11 会先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12。
+公开 `scripts/11_*` wrapper 没有受支持的业务参数或容错参数。阶段 11 读取 config、现有 evidence/outputs 与 Golden fixture,先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,重写 metrics/evidence/governance、Golden repair-sensitive rows,并生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12;validation blocker 可形成 NO-GO 产物而 wrapper 仍退出 0,迁移、请求、持久化或报告生成异常必须非零退出,且 Stage 11 不发布成功 provenance。
 
 ### 7.5 Validation snapshot provenance
 
diff --git a/architecture.md b/architecture.md
index 0fab599..9c3e84e 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
 

5. 独立事实重建

完整读取并交叉核对:

  • AGENTS.md
  • SOP.mdarchitecture.mdcapability_contract.jsoninteract.mdTESTING.mdPR_Checklist.mddocs/business_user_guide.md.github/pull_request_template.md
  • requirements/ai_first_v3_3_1/FSD.mdISSUE_CONTRACT.mdIMPLEMENTATION_TODO.mddecision_register.jsonbaseline_manifest.jsonlegacy_path_inventory.json
  • config/validation_source_policy.jsonconfig/vnext_release_plan.json、三份现行业务/SEC 配置;
  • stage 10/11/12 wrappers、scripts/sec_pipeline.pyscripts/sec_http.py 相关调用链、相关 fixture 与测试;
  • 历史说明/交接材料中与 Databricks Job、调度、数据库、API、前端、未来 FSD/Gate 条件有关的原文。

5.1 Stage 10

  • 公开 wrapper 不解析业务/容错 argv;额外 argv 不是受支持配置接口。
  • full shape 读取 registry、resolution、metrics、concept inventory;G2 构造 SEC companyconcept 请求。
  • full 可能追加 request ledger/manifest 与 content-addressed attempts,并覆盖两个 Golden CSV。
  • light 只做 package snapshot integrity,不联网、不重算、不写 Golden CSV。
  • fixture 共 37 行;容差/比较符唯一集合为 exact00.010.0000000001
  • workspace incomplete、light integrity fail、persistence exception 或 assertion FAIL 导致非零。
  • 关键新事实:SecHttpClient.fetch 对 transport failure 或重试耗尽返回 FetchResult;G2 把 status_code 写入 actual,但 assertion status 只看 B08 是否 N_A_STRUCTURAL。所以“任意远端失败必然非零”不成立。

5.2 Stage 11

  • 公开 wrapper 不解析业务/容错 argv;开头使旧成功 provenance 失效。
  • 读取 config、existing evidence/outputs 与 Golden fixture;先持久化 IN_PROGRESS manifest。
  • locator migration、bounded repair、metrics/evidence/governance/Golden repair-sensitive rows、coverage/crosscheck/exceptions/audits/manifest/report/README 都可能被重写。
  • C04 仅在有序本地候选不足时最小补抓官方 SEC material,因此不是保证离线。
  • validation blocker 可以形成 NO-GO 产物而 wrapper 仍退出 0;migration/request/persistence/report exception 非零。
  • Stage 11 不发布新的成功 provenance;无跨全部派生产物的事务,partial bytes 可残留,但 IN_PROGRESS 防止旧成功被复用。

5.3 Stage 12

  • 公开 wrapper 不解析业务/容错 argv;运行前使旧 provenance 失效。
  • 从 source policy 捕获 source snapshot;stage 本身离线,但会写 implementation/spec/stub/stratified/scalability/repair、manifest、report 和 provenance sidecar。
  • workspace incomplete、full NOT_EVALUATED/SKIP、validation blocker、dirty source、write/report failure 或 provenance postflight mismatch 非零。
  • 本 target 的 acceptance source docs 未提交,full/source snapshot 当前必然 dirty;实际运行还会覆盖真实 validation/report bytes。

5.4 阈值与 vNext 边界

  • 现行 lodging identity producer 与 validator:hard-coded Decimal("0.05")
  • 现行 B03 crosscheck:hard-coded relative error 0.01
  • 现行 anchor:hard-coded absolute Decimal tolerance 0.0000000001
  • RevPAR/occupancy 合理范围来自 config。
  • vNext lodging 1% 只属于尚未切流的 recorded shadow;不能反向改写 00–12。
  • vNext 已有 recorded transaction/publication primitives,但 D-01 仍 pending,尚无 active pointer/Cutover;recorded Golden/frozen baseline 不能冒充现行 Stage 10/12 full。

6. 四项专项检查

专项 调查结果 判定
部分过时旧文档 找到六份历史/方案/交接材料。SEC_metrics_项目全景与专家指南.md 明写 FSD DoD/Gates/Cutover 后才启用;Databricks 材料描述 Job、数据库、API、前端或生产链路。AGENTS.md 新增行准确把它们隔离出 current runtime/acceptance closure。 PASS;没有把历史说明删除或伪装成 current authority。
跨文档共同虚构能力 当前九文件交叉核对后没有共同声称已部署 API/UI/database/scheduler/active vNext。architecture.md 还明确排除这些 current runtime 能力。 PASS。
light/Golden/repair 膨胀成 full 文档总体明确区分 light snapshot、Stage 10 Golden、Stage 11 report/repair、Stage 12 terminal gate、snapshot checker 与 vNext recorded-only。发现的 Stage 10 remote hard-failure 过度概括已单独修复。 修后 PASS。
无证据生产调度声明 Databricks/Lakeflow/每日调度只存在于历史方案;candidate AGENTS.md 明确“不证明已实现、部署或启用”。当前 runtime 没有 scheduler/deploy/CI。 PASS。

7. 九文件逐项质疑

文件 结论
architecture.md 一行改动准确区分 00–11 的三份业务/SEC 配置与 Stage 12 source policy;没有扩张 runtime。
capability_contract.json 无 diff;JSON 合法,claims 与当前 anchors/status 边界一致。
interact.md 无 diff;没有把 proposal/recorded 说成 active/live。
docs/business_user_guide.md 无 diff;运行、验证和用户可见边界与 code 一致。
TESTING.md Stage 10/11/12 输入、副作用、阈值和 hard-failure 大部分准确;初始 remote-failure 句过宽,已最小修复。
PR_Checklist.md 无 diff;没有放松 full/light/provenance 要求。
SOP.md 无 diff;authority、运行顺序和 structured state 保持准确。
AGENTS.md 新增历史材料分类有 bytes 证据,阻断错误生产化外推;范围最小。
.github/pull_request_template.md 无 diff;没有缺失本轮需要新增的约束。

8. Finding、修复与独立复核

A-R2-01 — BLOCKER(已修复)

初始文字:

输入缺失、远端/持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。

当前代码证据:

  • scripts/sec_http.py:1557-1564:retry exhausted 打印后返回结果,而非抛出。
  • scripts/sec_http.py:1634-1667:transport failure 形成 FetchResult(status_code=0);persistence exception 会记录后 re-raise。
  • scripts/sec_pipeline.py:8830-8864:G2 actual 含 companyconcept status,但 PASS/FAIL 只取决于 B08 N_A_STRUCTURAL
  • scripts/sec_pipeline.py:9515-9554:Stage 10 只按 assertion status 汇总失败并决定非零。

最小修复:只改 TESTING.md 一句,改为:

输入缺失、持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。G2 远端请求状态会写入 actual,但当前 PASS/FAIL 只由 B08 是否为 N_A_STRUCTURAL 决定,不能把任意远端失败概括为必然非零。

未改 production 的理由:任务是同步/审计文档;当前实现语义本身不是本轮授权修复范围。若业务希望远端失败强制 gate,应另开 production contract/implementation/test 变更,不能用文档先行创造能力。

修复影响:

  • TESTING.md SHA-256:d10297957ab74bd476faf117b02f39493dbcde78bb41a52d4e1bcbde0288650c6e0fdd1428f3e3f2d285490b0a883bfd9652e74a11451058a31871f23c7d772f
  • bytes:53305 → 53458;lines 仍为 277。
  • 其余八文件 bytes 不变。
  • Round 2 no-op=false;这是新事实驱动、单句最小修复,不是重写或 over-development。

独立 reviewer:

  • 初始:REQUEST_CHANGES,唯一 finding A-R2-01
  • 修后:APPROVE
  • 未解决:BLOCKER=0,actionable WARN=0。
  • reviewer 未提供可发布的内部 shell command ledger;本记录不虚构 reviewer 命令,只记录其隔离模式、finding、证据和终审结论。

9. 测试与机械证据

9.1 Exact commands

所有测试从 TESTING.md 的真实入口独立选择;完整 eval 未被定向测试替代。

env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m json.tool capability_contract.json >/dev/null
/usr/bin/time -p git diff --check
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 tools/check_capability_contract_alignment.py
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest -v tests.test_validation_provenance tests.test_validation_provenance_light_package
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest -v tests.test_sec_pipeline_validation.LightGoldenIntegrityTest tests.test_sec_pipeline_validation.FullGoldenIntegrityTest tests.test_sec_pipeline_validation.ValidationRunManifestTest tests.test_sec_pipeline_validation.PortableArtifactPathTest.test_stage_11_runs_after_clone_root_change
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest discover -s tests -t . -p 'test_*.py'
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3.9 -m unittest discover -s tests -t . -p 'test_*.py'
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v
env PYTHONDONTWRITEBYTECODE=1 /usr/bin/time -p python3.9 -m unittest discover -s tests/vnext -t . -p 'test_*.py' -v

Stage 10/11/12 与 finding 直接调查的 exact read/search commands(只读):

sed -n '1520,1575p' scripts/sec_http.py
sed -n '1575,1745p' scripts/sec_http.py
sed -n '8780,8885p' scripts/sec_pipeline.py
sed -n '9480,9570p' scripts/sec_pipeline.py
sed -n '160,182p' TESTING.md
rg -n '^def (validation_package_mode|run_golden_assertions|run_repairs|build_report|run_validation|run_stage)|GOLDEN_|lodging|relative_error|Decimal\("0\.(05|01|0000000001)' scripts/sec_pipeline.py scripts/10_run_golden_assertions.py scripts/11_build_report.py scripts/12_validate_repair.py tests/fixtures/sec_10_company_spike/golden_expected_values.csv config/metric_applicability.yaml
rg -n 'run_g2_structural_golden|companyconcept_status|G2_financial_assetscurrent|g2_financial_assetscurrent' tests
rg --files requirements/ai_first_v3_3_1 | sort
rg --files config | sort
rg --files | rg 'SEC_metrics_项目全景与专家指南|SEC_metrics_Databricks_Raw生产闭环操作手册|SEC_metrics_Raw_Data_后端交接简版|SEC_metrics_数据库边界与实施决策_项目负责人版|Databricks生产化方案_产品与前端沟通版' | sort
rg -n -m 6 'Databricks Job|Jobs|定时|调度|API|前端|数据库|未来|FSD|DoD|Gate' SEC_metrics_项目全景与专家指南.md SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md SEC_metrics_Raw_Data_后端交接简版_v1.0.md SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md Databricks生产化方案_产品与前端沟通版.artifact.json Databricks生产化方案_产品与前端沟通版.html

Snapshot/digest exact command pattern:

git rev-parse HEAD
git status --short
git diff --check
git diff --binary
for eval_path in architecture.md capability_contract.json interact.md docs/business_user_guide.md TESTING.md PR_Checklist.md SOP.md AGENTS.md .github/pull_request_template.md; do eval_hash=$(shasum -a 256 "$eval_path" | awk '{print $1}'); eval_lines=$(wc -l < "$eval_path" | tr -d ' '); eval_bytes=$(wc -c < "$eval_path" | tr -d ' '); printf '%s\t%s\t%s\t%s\n' "$eval_path" "$eval_hash" "$eval_lines" "$eval_bytes"; done
for eval_path in architecture.md capability_contract.json interact.md docs/business_user_guide.md TESTING.md PR_Checklist.md SOP.md AGENTS.md .github/pull_request_template.md; do printf '%s\t' "$eval_path"; shasum -a 256 "$eval_path" | awk '{print $1}'; done | shasum -a 256
git diff --binary | shasum -a 256

一次只读 sed 调用因误填不存在的 workdir 而在进程创建前失败;随后在固定 target 用相同 sed -n '5480,5645p' tests/test_sec_pipeline_validation.py 成功读取。失败调用未读取或写入任何文件,也不计作证据。

9.2 结果、解释器、return code、耗时与计数

Evidence 解释器 rc 结果/计数 unittest duration real/user/sys
capability JSON parse(初始) Python 3.14.3 0 valid JSON n/a 0.02/0.02/0.00s
git diff --check(初始) git 0 no output n/a 0.01/0.00/0.00s
capability alignment(初始) Python 3.14.3 1 只报 AGENTS/TESTING/architecture 工作树 bytes 与 HEAD 不同 n/a 1.51/1.16/0.28s
provenance 专项(初始) Python 3.14.3 0 22/22, OK 3.514s 3.57/1.52/1.68s
stage 10/11/12 定向(初始) Python 3.14.3 0 18/18, OK 0.064s 0.23/0.18/0.04s
默认解释器全仓 Python 3.14.3 0 365/365, OK;无 skip 汇总 182.520s 182.79/125.82/54.26s
Python 3.9 全仓 Python 3.9.12 0 365/365, OK;无 skip 汇总 254.423s 254.75/183.14/65.75s
默认解释器 vNext recorded Python 3.14.3 0 174/174, OK;无 skip 汇总 170.295s 170.54/120.00/49.67s
Python 3.9 vNext 第一次 Python 3.9.12 INDETERMINATE 进程曾运行,但工具输出截断后 terminal receipt 丢失;禁止记 PASS unknown unknown
Python 3.9 vNext 独立重跑 Python 3.9.12 0 174/174, OK;无 skip 汇总 217.797s 218.02/168.32/46.50s
capability JSON parse(修后) Python 3.14.3 0 valid JSON n/a 0.03/0.02/0.00s
git diff --check(修后) git 0 no output n/a 0.01/0.00/0.00s
capability alignment(修后) Python 3.14.3 1 仍只报 AGENTS/TESTING/architecture 与 HEAD 不同 n/a 1.74/1.29/0.35s
provenance 专项(修后) Python 3.14.3 0 22/22, OK 3.957s 4.02/1.67/1.92s
stage 10/11/12 定向(修后) Python 3.14.3 0 18/18, OK 0.069s 0.25/0.19/0.05s
canonical final check Python 3.14.3 0 9 files;dirty allowlist 恰为三文件 n/a tool wall 0.248234s

Alignment 的 rc=1 是真实结果,不能改写为 PASS:checker 按设计要求 capability evidence 的工作树 bytes 与 HEAD regular blob 一致,而本次评估对象正是未提交文档 diff。它未报告 JSON、anchor、symbol、metadata 或 request-ledger schema 错误。若候选未来提交,仍必须在 commit 后重跑 alignment;当前 check PASS 不能替代该 release-time gate。

四套完整回归都在 finding 修复前完成;修复只改 TESTING.md 的一处说明文字,未改 code/config/tests。修后重新执行 JSON、diff check、alignment、provenance 与 stage 10/11/12 直接套件,并由独立 reviewer 终审;没有把修前完整回归伪写成修后重新执行。

10. NOT_RUN、open decisions 与剩余风险

10.1 明确 NOT_RUN

项目 状态 原因
live 00–11 NOT_RUN config/sec_config.json 联系邮箱仍为示例值;D-01/provider policy 未批准;会联网并写真实 evidence/outputs;source docs 还未提交。
full Golden / Stage 10 wrapper NOT_RUN full 会访问 SEC、追加 ledger/attempts 并覆盖 Golden outputs;有效 SEC identity 前提不满足。light/full 行为由定向测试验证,但不能冒充真实 Golden。
Stage 11 report build NOT_RUN 可能条件式联网并会迁移/repair/覆盖 evidence、outputs、report、README;有效联系身份和干净隔离运行前提不满足。
Stage 12 repair/full validation NOT_RUN 当前 source closure 因未提交 docs 按设计 dirty;命令还会覆盖 manifest/audits/report/provenance,预期失败不是有价值的 terminal acceptance。
snapshot checker NOT_RUN 没有本轮新生成的 terminal snapshot,source 又 dirty;provenance 专项真实运行但不能替代 snapshot acceptance。
tools/run_acceptance.py --scope recorded NOT_RUN 会覆盖真实 acceptance/semantic/scalability receipts;本轮无 runtime/vNext bytes 变更,且 prompt 已要求避免覆盖真实 outputs。完整 recorded unit suites已运行,但不冒充 receipt。
tools/run_acceptance.py --scope full NOT_RUN 会触发/记录 live/full 过程并写 receipts;D-01、SEC identity、clean committed checkout 不满足。
static scalability gate NOT_RUN 直接入口会覆盖 outputs/scalability_audit.csv;本轮无 runtime change。相关 tests 已通过,但不冒充真实 gate artifact。
Cutover NOT_RUN D-01、第二真实 filing、独立 holdout、live 三轮、全量 staging parity、旧 producer 退出和 active pointer 前提未满足。
rollback NOT_RUN 没有 active committed publication、有效 predecessor 或已执行 Cutover;不存在可合法回滚对象。

10.2 Open decisions

  • D-01 provider/model/endpoint/region/retention/data-use/payload/filing-egress 仍 pending。
  • SEC organization/contact email 必须由运行负责人换成真实有效身份后,才能安排任何 live。
  • 如果产品希望 G2 transport/HTTP failure 本身使 Stage 10 非零,需新增明确 requirement、production assertion 与 mutation tests;当前文档只记录现行事实。
  • 候选提交后必须重跑 capability alignment;在 clean committed isolated checkout 才能安排 full acceptance。

10.3 剩余风险

  • 本轮没有 full SEC/live、真实 Golden、report build、Stage 12 或 snapshot receipt,因此结论仅为文档同步 Case A PASS,不是 full validation/Cutover PASS。
  • 历史 Databricks/生产化材料仍存在于仓库;当前依靠 authority classification 阻断误读,未来若被重新列入 acceptance source 必须重新审计。
  • vNext recorded tests 证明 recorded code paths,不证明 remote live、staging、active pointer 或 rollback。
  • reviewer 因规则入口提前读取 AGENTS.md,其 blind-first 范围有明确协议限制,已经披露。

11. 结束快照与 round-2 变更证明

结束 HEAD:

00c49b119431ad7201c51e573fbf2f353da3425e

结束 status:

 M AGENTS.md
 M TESTING.md
 M architecture.md

11.1 九文件结束 hashes

整体 digest 算法与起始完全相同。

# 文件 SHA-256 lines bytes
1 architecture.md 50868a3b8d3f2122336bb15bf14d337d9149d1994f12b79c2c36dc996183cd8e 339 56894
2 capability_contract.json 977024baf8e62cbf4c106e9b8a1b6165612bb8b22802627553adfff5f4af86f8 744 49298
3 interact.md 4b5bee8e92a447e9f9b7e97c92d4d9b8ef7f6aad1fd5456b9409d0397e0b3326 149 26170
4 docs/business_user_guide.md cc60065bd9a1d914ae584d0da491071110de819e1447097bc1ba03595a2b8f81 206 19099
5 TESTING.md 6e0fdd1428f3e3f2d285490b0a883bfd9652e74a11451058a31871f23c7d772f 277 53458
6 PR_Checklist.md b6e64e6cb6ccfa76b925cfe73a3b04dbffc814dae0880491b95361e723c52db8 119 9129
7 SOP.md 0ceea2cb9bb34c1363ce0494cca6c5b217ad3c7f96f855775c552453edafd38e 67 7410
8 AGENTS.md 0f7597110495c824b811345825262d4498a4d966404c74ba0364be294f846190 195 16306
9 .github/pull_request_template.md 37ac0c147044d5ef00531230447d0a8b145490b84d22e88fa80995168cd227b4 185 6268

结束九文件整体 digest:bfe10475f61c6dfb89c6aca2d9b6cc0c85bc5ba8fa73b881ed36dde6dab13efa

结束完整 git diff --binary digest:ed492af7064f0d451ff25c4a0e57b37f6e0a2725c86f2dbbec742e9a34aed6b0

对比:

  • 起始/结束 HEAD 相同。
  • dirty path set 相同且仅三文件。
  • 八个文件 bytes 完全相同。
  • TESTING.md 一项改变,故整体 digest 与 diff digest 改变。
  • 结论:round 2 不是 no-op;变更仅为 A-R2-01 的单句事实修复。

11.2 结束完整 diff

diff --git a/AGENTS.md b/AGENTS.md
index 27f21c2..ca741a1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,6 +106,7 @@ requirements/ai_first_v3_3_1/IMPLEMENTATION_TODO.md
 - `01_SOP_SEC_10公司单年指标计算_直接SEC.md`:当前运行路径中的业务方法输入,属于 acceptance source;其中 M0–M7 是概念阶段,不是当前 `scripts/00_*`–`12_*` 的物理顺序,实际运行以 `README_RUN.md` 为准。
 - `02_指标定义_SEC_10公司单年指标.md`:指标定义、候选链、公式、适用性与降级语义。
 - `SEC_metrics_Project_Overview_and_Expert_Guide.md`:解释性非权威文档;其中历史数量或历史验收结论不是当前状态源,也不得作为 SOP 运行权威。
+- `SEC_metrics_项目全景与专家指南.md`、`SEC_metrics_Databricks_Raw生产闭环操作手册_v1.0.md`、`SEC_metrics_Raw_Data_后端交接简版_v1.0.md`、`SEC_metrics_数据库边界与实施决策_项目负责人版_v1.0.md` 与 `Databricks生产化方案_产品与前端沟通版.*`:历史说明、方案或交接材料,不在当前 runtime/acceptance source closure 内;其中 Databricks Job、数据库、API、前端或生产调度描述不证明本仓库已实现、部署或启用对应能力。
 - `README_RUN.md`:完整阶段顺序、验收入口、主要输出和 light review 说明。
 - `CIK变更应对方案.md`:CIK、successor/predecessor 与实体连续性规则,属于 acceptance source。
 - `evidence/requests_log.csv`:按 request attempt 记录的请求 ledger。
diff --git a/TESTING.md b/TESTING.md
index 27d6c0d..8483cf6 100644
--- a/TESTING.md
+++ b/TESTING.md
@@ -164,20 +164,22 @@ fixture 可以包含公司身份;生产 `scripts/` 与 `tools/` 不得用公
 
 ### 7.2 Golden
 
-full 模式会通过 G2 访问 SEC companyconcept,可能更新 `evidence/requests_log.csv` 和 raw response,并覆盖:
+公开 `scripts/10_*` wrapper 没有受支持的业务参数或容错参数,不能把额外 argv 当成配置接口。full 模式读取 registry、resolution、metrics、concept inventory,并通过 G2 访问 SEC companyconcept;数值/字符串期望和容差逐行来自已跟踪的 `tests/fixtures/sec_10_company_spike/golden_expected_values.csv`(当前只包含 `exact`、`0`、`0.01` 和 `0.0000000001`)。该模式可能更新 request ledger/manifest、immutable response attempts,并覆盖:
 
 - `outputs/golden_results.csv`
 - `outputs/golden_candidates.csv`
 
-light 模式只做随包 snapshot integrity,不能被记录成 full Golden 重算。
+light 模式只做随包 snapshot integrity,不联网、不重算、不写上述 Golden 输出,也不能被记录成 full Golden 重算。输入缺失、持久化失败或任一 assertion FAIL 都必须使 Stage 10 非零退出。G2 远端请求状态会写入 `actual`,但当前 PASS/FAIL 只由 B08 是否为 `N_A_STRUCTURAL` 决定,不能把任意远端失败概括为必然非零。
 
 ### 7.3 Repair gate
 
-阶段 12 在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查。
+公开 `scripts/12_*` wrapper 没有受支持的业务参数或容错参数。阶段 12 离线读取当前 source-input tree 与现有 full/light artifacts,并在任何 validation 写入前创建 `outputs/validation_run_manifest.json`,然后逐项登记 `refreshed_artifacts`。它总会先重建 implementation map 与 spec audit;full 模式还写 stub-period sidecar。FULL/LIGHT 工作区继续重建 stratified/scalability audit 与 repair validation。若工作区为 `WORKSPACE_INCOMPLETE`,它只写 repair validation 的失败行,不会刷新 stratified/scalability audit;此时已有文件必须留在 `not_refreshed_artifacts`,不得作为本次运行证据。阶段 12 先用 projected terminal manifest 构建并写入报告,报告持久化成功后才把 manifest 从 `IN_PROGRESS` 写成终态;报告写入失败必须保留 `IN_PROGRESS`。它是 gate,但不是只读检查;workspace incomplete、full 中 `NOT_EVALUATED_MISSING_EVIDENCE`、validation blocker、dirty source、写入失败或 postflight 失配都必须非零退出。
+
+现行 legacy repair 阈值不是 Stage 10 fixture,也不是可调 CLI 参数:lodging identity relative error 阈值为代码固定 `0.05`(5%),RevPAR/occupancy 合理范围来自 config,B03 crosscheck relative error 阈值为代码固定 `0.01`(1%),anchor comparison 使用代码固定 absolute Decimal tolerance `0.0000000001`。vNext FSD 的 lodging `1%` 只属于尚未切流的 recorded shadow 契约,不能反向改写现行 00–12 阈值。
 
 ### 7.4 Report build
 
-阶段 11 会先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12。
+公开 `scripts/11_*` wrapper 没有受支持的业务参数或容错参数。阶段 11 读取 config、现有 evidence/outputs 与 Golden fixture,先把 locator-bearing artifact 迁移为 `source_url`、`repo_relative_path`、`content_sha256`、`accession`、`document_name`;对 request log,只在已有 exact-set manifest 验证成功后执行常规 normalization,缺 manifest 的 legacy schema 必须离开常规阶段做显式一次性 bootstrap;随后执行 bounded P0 repair,重写 metrics/evidence/governance、Golden repair-sensitive rows,并生成 coverage、crosscheck、异常清单、审计、run manifest、最终报告与 `README_RUN.md`。bounded repair primarily uses local artifacts;C04 repair 先检查 filed target(含 amendment),再遍历同期间原始 10-K fallback,只有有序本地候选仍无事实时才最小补抓官方 SEC material,空白/冲突事实必须降级;C04 期间不跨 CIK。full C04 gate 从 request-bound accession index 分别重建当期候选与上期 10-K 实例集,重放两期官方 DEI `AuditorName`,不以可缩减的 derived material/concept inventory 定义原始证据集。8-K repair 复用阶段 07 的 event→metric/evidence 实现;full validation 另从 request-bound submissions 与 raw filing 重放 expected set。submissions 必须匹配有序 ledger 中最新成功 200;filing-bound raw 文档若存在冲突成功 bodies 则失败。新请求的每次有响应体 attempt 使用 content-addressed immutable body/header;`evidence/requests_log_manifest.json` 记录整份日志的 row count 与 SHA-256,validation 要求 working ledger 保留 Git HEAD 有序前缀,PR checker 要求 base/HEAD 的每条 current/legacy row 形状严格且 HEAD 保留 base 的 migration-neutral 有序前缀,两层都只允许合法尾部追加;下游 locator 与已存 response sidecar 提供反向覆盖。任一不一致都不能 PASS。该 HEAD 基线只在 Git checkout 中存在;无 `.git` 的离线包必须显示 `NOT_EVALUATED_MISSING_EVIDENCE:request_log_history_baseline_unavailable`,FULL validation 因此阻断,LIGHT 本就不执行该 full gate。历史 request row 的 hash 若已无法解析到原 bytes,full gate 也必须写成 NOT_EVALUATED。该分支会追加请求日志及 manifest、raw response、headers/hash、accession material inventory 和 instance inventory;所以阶段 11 不是保证离线的命令。内部 deferred validation 只有在报告和 README 写入成功后才发布 manifest 终态,且不能替代独立阶段 12;validation blocker 可形成 NO-GO 产物而 wrapper 仍退出 0,迁移、请求、持久化或报告生成异常必须非零退出,且 Stage 11 不发布成功 provenance。
 
 ### 7.5 Validation snapshot provenance
 
diff --git a/architecture.md b/architecture.md
index 0fab599..9c3e84e 100644
--- a/architecture.md
+++ b/architecture.md
@@ -29,7 +29,7 @@
 
 SEC_metrics 是一个本地 Python CLI 批处理研究项目,面向需要复核 SEC 申报数据的分析、财务方法和审计人员。它对 `config/company_registry.csv` 中配置的逻辑公司定位最新年度申报,计算适用的财务指标,并抽取治理、风险和财年窗口事件信号。
 
-输入包括三份配置、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
+输入包括现行 00–11 的三份业务/SEC 配置、Stage 12 的 validation source policy、SEC 官方公开端点、前序阶段文件,以及测试 fixture。输出包括原始响应与请求审计、规范化 inventory、指标与证据矩阵、coverage、Golden、repair validation、分层审计、validation run manifest、成功终态的 snapshot provenance sidecar 和中文报告。
 
 当前运行时不是 API、Web 前端、聊天系统、daily scheduler、报价模型、数据库服务或已切换的 vNext 发布系统。13 个阶段脚本每次只运行一个阶段;完整批次由操作者按照 `README_RUN.md` 的顺序执行。
 

12. 最终判定

PASS — workflow-docs-sync Case A round 2。

判定边界:

  • 这是九文件文档同步/事实一致性 PASS。
  • 它包含独立 reviewer 发现并验证的一处单句修复,所以最终不是 no-op。
  • canonical check PASS、四套完整本地回归 PASS、修后直接检查 PASS。
  • alignment 的未提交 dirty failure、所有 NOT_RUN 和 reviewer blind-first 协议限制均已显式保留。
  • 不声称 full validation、live、Golden、report build、Cutover、rollback 或 CI PASS。

@wlvh
wlvh marked this pull request as ready for review August 2, 2026 05:55
@wlvh
wlvh merged commit 185f6e7 into main Aug 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant